commit: 0deaf3144dde38c40fceea427a26d82682ce46d4
parent b2f81fb67cfd273ed556da99d8489dfd4fe1e9c0
Author: Michael Forney <mforney@mforney.org>
Date: Sat, 16 Mar 2024 23:14:06 -0700
alsa-lib: Update to 1.2.11
Diffstat:
10 files changed, 301 insertions(+), 244 deletions(-)
diff --git a/pkg/alsa-lib/config.h b/pkg/alsa-lib/config.h
@@ -18,15 +18,18 @@
#define BUILD_SEQ "1"
#define BUILD_TOPOLOGY "1"
/* #undef BUILD_UCM */
+#define HAVE_ATTRIBUTE_SYMVER 1
#define HAVE_CLOCK_GETTIME 1
#define HAVE_DLFCN_H 1
#define HAVE_EACCESS 1
#define HAVE_ENDIAN_H 1
#define HAVE_INTTYPES_H 1
+/* #undef HAVE_LFS */
/* #undef HAVE_LIBDL */
#define HAVE_LIBPTHREAD 1
/* #undef HAVE_LIBRESMGR */
#define HAVE_LIBRT 1
+#define HAVE_MALLOC_H 1
#define HAVE_MEMORY_H 1
#define HAVE_MMX 1
#define HAVE_PTHREAD_MUTEX_RECURSIVE /**/
@@ -52,10 +55,10 @@
#define PACKAGE "alsa-lib"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME "alsa-lib"
-#define PACKAGE_STRING "alsa-lib 1.2.5.1"
+#define PACKAGE_STRING "alsa-lib 1.2.11"
#define PACKAGE_TARNAME "alsa-lib"
#define PACKAGE_URL ""
-#define PACKAGE_VERSION "1.2.5.1"
+#define PACKAGE_VERSION "1.2.11"
#define SND_MAX_CARDS 32
#define STDC_HEADERS 1
#define SUPPORT_ALOAD "1"
@@ -78,8 +81,13 @@
#ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1
#endif
-#define VERSION "1.2.5.1"
+#define VERSION "1.2.11"
#define VERSIONED_SYMBOLS /**/
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+/* #undef _FILE_OFFSET_BITS */
+/* #undef _LARGE_FILES */
/* #undef _MINIX */
/* #undef _POSIX_1_SOURCE */
/* #undef _POSIX_SOURCE */
diff --git a/pkg/alsa-lib/gen.lua b/pkg/alsa-lib/gen.lua
@@ -1,4 +1,6 @@
cflags{
+ '-std=gnu99', '-Wall', '-Wno-unused-const-variable', '-Wno-maybe-uninitialized',
+ '-D _GNU_SOURCE',
'-I $outdir',
'-I $dir',
'-I $dir/alsa',
@@ -46,9 +48,9 @@ build('objcopy', '$outdir/src/pcm/pcm.nowarn.c.o', '$outdir/src/pcm/pcm.c.o', {
})
lib('libasound.a', [[src/(
- conf.c confmisc.c input.c output.c async.c error.c dlmisc.c socket.c shmarea.c userfile.c names.c
+ conf.c confeval.c confmisc.c input.c output.c async.c error.c dlmisc.c socket.c shmarea.c userfile.c names.c
control/(
- cards.c tlv.c namehint.c hcontrol.c
+ cards.c tlv.c eld.c namehint.c hcontrol.c
control.c control_hw.c control_empty.c
setup.c ctlparse.c
control_symbols.c
diff --git a/pkg/alsa-lib/patch/0002-Prevent-empty-top-level-declarations.patch b/pkg/alsa-lib/patch/0002-Prevent-empty-top-level-declarations.patch
@@ -1,4 +1,4 @@
-From a4dcc0e1772f620a59cb5030ae2f7c025037fb76 Mon Sep 17 00:00:00 2001
+From c98863254a954696ee168a7a607b2fd60a8680ea Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Wed, 3 Jul 2019 18:15:11 -0700
Subject: [PATCH] Prevent empty top-level declarations
@@ -53,22 +53,22 @@ as an empty top-level declaration, which is not allowed in ISO C.
43 files changed, 87 insertions(+), 87 deletions(-)
diff --git a/include/alsa-symbols.h b/include/alsa-symbols.h
-index 344f021a..42e64623 100644
+index 2298cb50..be37f143 100644
--- a/include/alsa-symbols.h
+++ b/include/alsa-symbols.h
-@@ -30,9 +30,9 @@
- #define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
-
+@@ -36,9 +36,9 @@
+ extern __typeof (real) real __attribute__((symver (#name "@@" #version)))
+ #else
#define symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
+ __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version);
#define default_symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version)
+ __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version);
+ #endif
#ifdef __clang__
- #define EXPORT_SYMBOL __attribute__((visibility("default")))
-@@ -50,11 +50,11 @@
+@@ -57,11 +57,11 @@
#if defined(__alpha__) || defined(__mips__)
#define use_default_symbol_version(real, name, version) \
__asm__ (".weak " ASM_NAME(#name)); \
@@ -83,10 +83,10 @@ index 344f021a..42e64623 100644
#endif
diff --git a/src/conf.c b/src/conf.c
-index d863dec6..b1022112 100644
+index eca44c03..25ed58c0 100644
--- a/src/conf.c
+++ b/src/conf.c
-@@ -4231,7 +4231,7 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t
+@@ -4311,7 +4311,7 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t
return err;
}
#ifndef DOC_HIDDEN
@@ -95,7 +95,7 @@ index d863dec6..b1022112 100644
#endif
#ifndef DOC_HIDDEN
-@@ -4401,7 +4401,7 @@ __fin_err:
+@@ -4481,7 +4481,7 @@ __fin_err:
return err;
}
#ifndef DOC_HIDDEN
@@ -105,7 +105,7 @@ index d863dec6..b1022112 100644
/**
diff --git a/src/confmisc.c b/src/confmisc.c
-index 64af96fa..57fdb771 100644
+index 9b30d6c1..a819593d 100644
--- a/src/confmisc.c
+++ b/src/confmisc.c
@@ -330,7 +330,7 @@ int snd_func_getenv(snd_config_t **dst, snd_config_t *root, snd_config_t *src,
@@ -215,8 +215,8 @@ index 64af96fa..57fdb771 100644
+SND_DLSYM_BUILD_VERSION(snd_func_card_name, SND_CONFIG_DLSYM_VERSION_EVALUATE)
#endif
- #ifdef BUILD_PCM
-@@ -1114,7 +1114,7 @@ int snd_func_pcm_id(snd_config_t **dst, snd_config_t *root, snd_config_t *src, v
+ #ifdef DOXYGEN
+@@ -1122,7 +1122,7 @@ int snd_func_pcm_id(snd_config_t **dst, snd_config_t *root, snd_config_t *src, v
return err;
}
#ifndef DOC_HIDDEN
@@ -225,7 +225,7 @@ index 64af96fa..57fdb771 100644
#endif
/**
-@@ -1227,7 +1227,7 @@ int snd_func_pcm_args_by_class(snd_config_t **dst, snd_config_t *root, snd_confi
+@@ -1235,7 +1235,7 @@ int snd_func_pcm_args_by_class(snd_config_t **dst, snd_config_t *root, snd_confi
return err;
}
#ifndef DOC_HIDDEN
@@ -234,7 +234,7 @@ index 64af96fa..57fdb771 100644
#endif
/**
-@@ -1281,7 +1281,7 @@ int snd_func_private_pcm_subdevice(snd_config_t **dst, snd_config_t *root ATTRIB
+@@ -1289,7 +1289,7 @@ int snd_func_private_pcm_subdevice(snd_config_t **dst, snd_config_t *root ATTRIB
return err;
}
#ifndef DOC_HIDDEN
@@ -243,7 +243,7 @@ index 64af96fa..57fdb771 100644
#endif
#endif /* BUILD_PCM */
-@@ -1383,7 +1383,7 @@ int snd_func_refer(snd_config_t **dst, snd_config_t *root, snd_config_t *src,
+@@ -1391,7 +1391,7 @@ int snd_func_refer(snd_config_t **dst, snd_config_t *root, snd_config_t *src,
return err;
}
#ifndef DOC_HIDDEN
@@ -253,10 +253,10 @@ index 64af96fa..57fdb771 100644
#ifndef DOC_HIDDEN
diff --git a/src/control/control.c b/src/control/control.c
-index ed986e54..9ef72316 100644
+index d77ab24c..4c2ae7f5 100644
--- a/src/control/control.c
+++ b/src/control/control.c
-@@ -2613,7 +2613,7 @@ int snd_ctl_elem_info_is_indirect(const snd_ctl_elem_info_t *obj)
+@@ -2738,7 +2738,7 @@ int snd_ctl_elem_info_is_indirect(const snd_ctl_elem_info_t *obj)
assert(obj);
return 0;
}
@@ -265,7 +265,7 @@ index ed986e54..9ef72316 100644
/**
* \brief Get owner of a locked element
-@@ -2770,7 +2770,7 @@ int snd_ctl_elem_info_get_dimensions(const snd_ctl_elem_info_t *obj)
+@@ -2895,7 +2895,7 @@ int snd_ctl_elem_info_get_dimensions(const snd_ctl_elem_info_t *obj)
return -EINVAL;
#endif
}
@@ -274,7 +274,7 @@ index ed986e54..9ef72316 100644
/**
* \brief Get specified of dimension width for given element
-@@ -2796,7 +2796,7 @@ int snd_ctl_elem_info_get_dimension(const snd_ctl_elem_info_t *obj, unsigned int
+@@ -2921,7 +2921,7 @@ int snd_ctl_elem_info_get_dimension(const snd_ctl_elem_info_t *obj, unsigned int
return -EINVAL;
#endif /* deprecated */
}
@@ -284,10 +284,10 @@ index ed986e54..9ef72316 100644
/**
* \brief Set width to a specified dimension level of given element information.
diff --git a/src/control/control_hw.c b/src/control/control_hw.c
-index 680f0fec..d8989c14 100644
+index a353767d..beba09bf 100644
--- a/src/control/control_hw.c
+++ b/src/control/control_hw.c
-@@ -514,5 +514,5 @@ int _snd_ctl_hw_open(snd_ctl_t **handlep, char *name, snd_config_t *root ATTRIBU
+@@ -547,5 +547,5 @@ int _snd_ctl_hw_open(snd_ctl_t **handlep, char *name, snd_config_t *root ATTRIBU
return snd_ctl_hw_open(handlep, name, card, mode);
}
#ifndef DOC_HIDDEN
@@ -295,7 +295,7 @@ index 680f0fec..d8989c14 100644
+SND_DLSYM_BUILD_VERSION(_snd_ctl_hw_open, SND_CONTROL_DLSYM_VERSION)
#endif
diff --git a/src/control/control_shm.c b/src/control/control_shm.c
-index c5723549..b62746b0 100644
+index 3d1555ee..135dd805 100644
--- a/src/control/control_shm.c
+++ b/src/control/control_shm.c
@@ -619,4 +619,4 @@ int _snd_ctl_shm_open(snd_ctl_t **handlep, char *name, snd_config_t *root, snd_c
@@ -305,22 +305,22 @@ index c5723549..b62746b0 100644
-SND_DLSYM_BUILD_VERSION(_snd_ctl_shm_open, SND_CONTROL_DLSYM_VERSION);
+SND_DLSYM_BUILD_VERSION(_snd_ctl_shm_open, SND_CONTROL_DLSYM_VERSION)
diff --git a/src/dlmisc.c b/src/dlmisc.c
-index 1dd91356..280abdbf 100644
+index d7aff456..96784197 100644
--- a/src/dlmisc.c
+++ b/src/dlmisc.c
-@@ -170,8 +170,8 @@ EXPORT_SYMBOL void *INTERNAL(snd_dlopen_old)(const char *name, int mode)
- }
+@@ -171,8 +171,8 @@ EXPORT_SYMBOL void *INTERNAL(snd_dlopen_old)(const char *name, int mode)
#endif
+ #ifndef DOC_HIDDEN
-use_symbol_version(__snd_dlopen_old, snd_dlopen, ALSA_0.9);
-use_default_symbol_version(__snd_dlopen, snd_dlopen, ALSA_1.1.6);
+use_symbol_version(__snd_dlopen_old, snd_dlopen, ALSA_0.9)
+use_default_symbol_version(__snd_dlopen, snd_dlopen, ALSA_1.1.6)
+ #endif /* DOC_HIDDEN */
/**
- * \brief Closes a dynamic library - ALSA wrapper for \c dlclose.
diff --git a/src/hwdep/hwdep_hw.c b/src/hwdep/hwdep_hw.c
-index 1d3cf8e1..3ba489ec 100644
+index 0f28f23b..195c6107 100644
--- a/src/hwdep/hwdep_hw.c
+++ b/src/hwdep/hwdep_hw.c
@@ -179,4 +179,4 @@ int _snd_hwdep_hw_open(snd_hwdep_t **hwdep, char *name,
@@ -330,7 +330,7 @@ index 1d3cf8e1..3ba489ec 100644
-SND_DLSYM_BUILD_VERSION(_snd_hwdep_hw_open, SND_HWDEP_DLSYM_VERSION);
+SND_DLSYM_BUILD_VERSION(_snd_hwdep_hw_open, SND_HWDEP_DLSYM_VERSION)
diff --git a/src/names.c b/src/names.c
-index d909a11d..890d2a34 100644
+index 922ef781..8e2f029f 100644
--- a/src/names.c
+++ b/src/names.c
@@ -44,7 +44,7 @@ int snd_names_list(const char *iface ATTRIBUTE_UNUSED,
@@ -349,10 +349,10 @@ index d909a11d..890d2a34 100644
-link_warning(snd_names_list_free, "Warning: snd_names_list_free is deprecated, use snd_device_name_free_hint");
+link_warning(snd_names_list_free, "Warning: snd_names_list_free is deprecated, use snd_device_name_free_hint")
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
-index 09df0f12..68c919e4 100644
+index ab3bbda7..18b1246e 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
-@@ -1526,7 +1526,7 @@ snd_pcm_sframes_t snd_pcm_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames)
+@@ -1544,7 +1544,7 @@ snd_pcm_sframes_t snd_pcm_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames)
snd_pcm_unlock(pcm->fast_op_arg);
return result;
}
@@ -361,7 +361,7 @@ index 09df0f12..68c919e4 100644
/**
* \brief Write interleaved frames to a PCM
-@@ -2195,7 +2195,7 @@ const char *snd_pcm_start_mode_name(snd_pcm_start_t mode)
+@@ -2256,7 +2256,7 @@ const char *snd_pcm_start_mode_name(snd_pcm_start_t mode)
}
#ifndef DOC_HIDDEN
@@ -370,7 +370,7 @@ index 09df0f12..68c919e4 100644
#endif
/**
-@@ -2211,7 +2211,7 @@ const char *snd_pcm_xrun_mode_name(snd_pcm_xrun_t mode)
+@@ -2272,7 +2272,7 @@ const char *snd_pcm_xrun_mode_name(snd_pcm_xrun_t mode)
}
#ifndef DOC_HIDDEN
@@ -379,7 +379,7 @@ index 09df0f12..68c919e4 100644
#endif
/**
-@@ -2265,7 +2265,7 @@ const char *snd_pcm_type_name(snd_pcm_type_t type)
+@@ -2326,7 +2326,7 @@ const char *snd_pcm_type_name(snd_pcm_type_t type)
return NULL;
return snd_pcm_type_names[type];
}
@@ -388,7 +388,7 @@ index 09df0f12..68c919e4 100644
/**
* \brief Dump current hardware setup for PCM
-@@ -6295,7 +6295,7 @@ int snd_pcm_sw_params_set_start_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params
+@@ -6466,7 +6466,7 @@ int snd_pcm_sw_params_set_start_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params
}
#ifndef DOC_HIDDEN
@@ -397,7 +397,7 @@ index 09df0f12..68c919e4 100644
#endif
/**
-@@ -6311,7 +6311,7 @@ snd_pcm_start_t snd_pcm_sw_params_get_start_mode(const snd_pcm_sw_params_t *para
+@@ -6482,7 +6482,7 @@ snd_pcm_start_t snd_pcm_sw_params_get_start_mode(const snd_pcm_sw_params_t *para
}
#ifndef DOC_HIDDEN
@@ -406,7 +406,7 @@ index 09df0f12..68c919e4 100644
#endif
/**
-@@ -6343,7 +6343,7 @@ int snd_pcm_sw_params_set_xrun_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params,
+@@ -6514,7 +6514,7 @@ int snd_pcm_sw_params_set_xrun_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params,
}
#ifndef DOC_HIDDEN
@@ -415,7 +415,7 @@ index 09df0f12..68c919e4 100644
#endif
/**
-@@ -6359,7 +6359,7 @@ snd_pcm_xrun_t snd_pcm_sw_params_get_xrun_mode(const snd_pcm_sw_params_t *params
+@@ -6530,7 +6530,7 @@ snd_pcm_xrun_t snd_pcm_sw_params_get_xrun_mode(const snd_pcm_sw_params_t *params
}
#ifndef DOC_HIDDEN
@@ -424,7 +424,7 @@ index 09df0f12..68c919e4 100644
#endif
/**
-@@ -6852,7 +6852,7 @@ void snd_pcm_status_get_trigger_htstamp(const snd_pcm_status_t *obj, snd_htimest
+@@ -7030,7 +7030,7 @@ void snd_pcm_status_get_trigger_htstamp(const snd_pcm_status_t *obj, snd_htimest
assert(obj && ptr);
*ptr = obj->trigger_tstamp;
}
@@ -433,7 +433,7 @@ index 09df0f12..68c919e4 100644
/**
* \brief Get "now" timestamp from a PCM status container
-@@ -6880,7 +6880,7 @@ void snd_pcm_status_get_htstamp(const snd_pcm_status_t *obj, snd_htimestamp_t *p
+@@ -7058,7 +7058,7 @@ void snd_pcm_status_get_htstamp(const snd_pcm_status_t *obj, snd_htimestamp_t *p
assert(obj && ptr);
*ptr = obj->tstamp;
}
@@ -442,7 +442,7 @@ index 09df0f12..68c919e4 100644
/**
* \brief Get "now" hi-res audio timestamp from a PCM status container
-@@ -7571,8 +7571,8 @@ snd_pcm_uframes_t _snd_pcm_boundary(snd_pcm_t *pcm)
+@@ -7752,8 +7752,8 @@ snd_pcm_uframes_t _snd_pcm_boundary(snd_pcm_t *pcm)
}
#ifndef DOC_HIDDEN
@@ -453,7 +453,7 @@ index 09df0f12..68c919e4 100644
#endif
static const char *const names[SND_PCM_HW_PARAM_LAST_INTERVAL + 1] = {
-@@ -7837,13 +7837,13 @@ void snd_pcm_unlink_appl_ptr(snd_pcm_t *pcm, snd_pcm_t *slave)
+@@ -8018,13 +8018,13 @@ void snd_pcm_unlink_appl_ptr(snd_pcm_t *pcm, snd_pcm_t *slave)
#ifdef USE_VERSIONED_SYMBOLS
#define OBSOLETE1(name, what, new) \
@@ -471,10 +471,10 @@ index 09df0f12..68c919e4 100644
#endif /* USE_VERSIONED_SYMBOLS */
diff --git a/src/pcm/pcm_adpcm.c b/src/pcm/pcm_adpcm.c
-index ed065318..ae0bfae2 100644
+index efd41451..fd9b9e8e 100644
--- a/src/pcm/pcm_adpcm.c
+++ b/src/pcm/pcm_adpcm.c
-@@ -678,5 +678,5 @@ int _snd_pcm_adpcm_open(snd_pcm_t **pcmp, const char *name,
+@@ -677,5 +677,5 @@ int _snd_pcm_adpcm_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -482,7 +482,7 @@ index ed065318..ae0bfae2 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_adpcm_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_alaw.c b/src/pcm/pcm_alaw.c
-index 540ba25f..839783cf 100644
+index 715b04c7..0a889183 100644
--- a/src/pcm/pcm_alaw.c
+++ b/src/pcm/pcm_alaw.c
@@ -552,5 +552,5 @@ int _snd_pcm_alaw_open(snd_pcm_t **pcmp, const char *name,
@@ -504,7 +504,7 @@ index 9c32b1b9..740a85fe 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_asym_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_copy.c b/src/pcm/pcm_copy.c
-index 4c099acd..f7769f22 100644
+index 1bf745d2..461bc36e 100644
--- a/src/pcm/pcm_copy.c
+++ b/src/pcm/pcm_copy.c
@@ -298,5 +298,5 @@ int _snd_pcm_copy_open(snd_pcm_t **pcmp, const char *name,
@@ -515,10 +515,10 @@ index 4c099acd..f7769f22 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_copy_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
-index 608593f1..595f13e8 100644
+index 55cae3e7..46d4f53e 100644
--- a/src/pcm/pcm_dmix.c
+++ b/src/pcm/pcm_dmix.c
-@@ -1374,5 +1374,5 @@ int _snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name,
+@@ -1339,5 +1339,5 @@ int _snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -526,10 +526,10 @@ index 608593f1..595f13e8 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_dmix_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
-index a918512b..d20d4adc 100644
+index c0329098..e2986d46 100644
--- a/src/pcm/pcm_dshare.c
+++ b/src/pcm/pcm_dshare.c
-@@ -999,5 +999,5 @@ int _snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name,
+@@ -968,5 +968,5 @@ int _snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -537,10 +537,10 @@ index a918512b..d20d4adc 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_dshare_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
-index 2c3b9f43..470e8a80 100644
+index bf67c68a..6eb6f66b 100644
--- a/src/pcm/pcm_dsnoop.c
+++ b/src/pcm/pcm_dsnoop.c
-@@ -853,5 +853,5 @@ int _snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name,
+@@ -820,5 +820,5 @@ int _snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -559,7 +559,7 @@ index 7cbd349f..c53b922b 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_empty_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_file.c b/src/pcm/pcm_file.c
-index 7709a554..05fce112 100644
+index 90b3f3f5..cd4c9b05 100644
--- a/src/pcm/pcm_file.c
+++ b/src/pcm/pcm_file.c
@@ -1140,5 +1140,5 @@ int _snd_pcm_file_open(snd_pcm_t **pcmp, const char *name,
@@ -590,10 +590,10 @@ index 4416d363..ed88dd29 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_hook_ctl_elems_install, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
-index b3f9d157..5ae6800f 100644
+index bd3ecfc9..6e2fd971 100644
--- a/src/pcm/pcm_hw.c
+++ b/src/pcm/pcm_hw.c
-@@ -1936,7 +1936,7 @@ fail:
+@@ -2070,7 +2070,7 @@ fail:
}
#ifndef DOC_HIDDEN
@@ -603,10 +603,10 @@ index b3f9d157..5ae6800f 100644
/*
diff --git a/src/pcm/pcm_iec958.c b/src/pcm/pcm_iec958.c
-index a11a0439..0f7bf296 100644
+index 7b8459fb..1afe7393 100644
--- a/src/pcm/pcm_iec958.c
+++ b/src/pcm/pcm_iec958.c
-@@ -814,5 +814,5 @@ int _snd_pcm_iec958_open(snd_pcm_t **pcmp, const char *name,
+@@ -813,5 +813,5 @@ int _snd_pcm_iec958_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -614,7 +614,7 @@ index a11a0439..0f7bf296 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_iec958_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_ladspa.c b/src/pcm/pcm_ladspa.c
-index ad73347d..4a846af9 100644
+index 56ee138f..3ea7f70b 100644
--- a/src/pcm/pcm_ladspa.c
+++ b/src/pcm/pcm_ladspa.c
@@ -1804,5 +1804,5 @@ int _snd_pcm_ladspa_open(snd_pcm_t **pcmp, const char *name,
@@ -625,10 +625,10 @@ index ad73347d..4a846af9 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_ladspa_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_lfloat.c b/src/pcm/pcm_lfloat.c
-index f32a82a7..0447d0a2 100644
+index d9aa136d..7785e4b9 100644
--- a/src/pcm/pcm_lfloat.c
+++ b/src/pcm/pcm_lfloat.c
-@@ -511,7 +511,7 @@ int _snd_pcm_lfloat_open(snd_pcm_t **pcmp, const char *name,
+@@ -510,7 +510,7 @@ int _snd_pcm_lfloat_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -638,10 +638,10 @@ index f32a82a7..0447d0a2 100644
#else /* BUGGY_GCC */
diff --git a/src/pcm/pcm_linear.c b/src/pcm/pcm_linear.c
-index 33e7fc45..26b4f4e5 100644
+index 81edccaa..c95d1b95 100644
--- a/src/pcm/pcm_linear.c
+++ b/src/pcm/pcm_linear.c
-@@ -553,5 +553,5 @@ int _snd_pcm_linear_open(snd_pcm_t **pcmp, const char *name,
+@@ -552,5 +552,5 @@ int _snd_pcm_linear_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -649,10 +649,10 @@ index 33e7fc45..26b4f4e5 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_linear_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_meter.c b/src/pcm/pcm_meter.c
-index 2dcf8e45..c7a75347 100644
+index 68c369de..947ef0f1 100644
--- a/src/pcm/pcm_meter.c
+++ b/src/pcm/pcm_meter.c
-@@ -833,7 +833,7 @@ int _snd_pcm_meter_open(snd_pcm_t **pcmp, const char *name,
+@@ -835,7 +835,7 @@ int _snd_pcm_meter_open(snd_pcm_t **pcmp, const char *name,
}
return 0;
}
@@ -673,10 +673,10 @@ index 009cebb3..0011ccf4 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_mmap_emul_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_mulaw.c b/src/pcm/pcm_mulaw.c
-index 73b0c3bc..58f741b6 100644
+index 177a61bb..587fa54e 100644
--- a/src/pcm/pcm_mulaw.c
+++ b/src/pcm/pcm_mulaw.c
-@@ -566,5 +566,5 @@ int _snd_pcm_mulaw_open(snd_pcm_t **pcmp, const char *name,
+@@ -565,5 +565,5 @@ int _snd_pcm_mulaw_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -684,10 +684,10 @@ index 73b0c3bc..58f741b6 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_mulaw_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_multi.c b/src/pcm/pcm_multi.c
-index 5fa09b9b..982f0829 100644
+index 74e1e3f1..7320f46f 100644
--- a/src/pcm/pcm_multi.c
+++ b/src/pcm/pcm_multi.c
-@@ -1446,5 +1446,5 @@ _free:
+@@ -1458,5 +1458,5 @@ _free:
return err;
}
#ifndef DOC_HIDDEN
@@ -695,7 +695,7 @@ index 5fa09b9b..982f0829 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_multi_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_null.c b/src/pcm/pcm_null.c
-index c8ea9b38..c3fed163 100644
+index f7b096bc..ad72d067 100644
--- a/src/pcm/pcm_null.c
+++ b/src/pcm/pcm_null.c
@@ -501,5 +501,5 @@ int _snd_pcm_null_open(snd_pcm_t **pcmp, const char *name,
@@ -706,10 +706,10 @@ index c8ea9b38..c3fed163 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_null_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_plug.c b/src/pcm/pcm_plug.c
-index abf6f1ab..ce48cc45 100644
+index e5a3a189..86a29920 100644
--- a/src/pcm/pcm_plug.c
+++ b/src/pcm/pcm_plug.c
-@@ -1332,5 +1332,5 @@ int _snd_pcm_plug_open(snd_pcm_t **pcmp, const char *name,
+@@ -1344,5 +1344,5 @@ int _snd_pcm_plug_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -717,10 +717,10 @@ index abf6f1ab..ce48cc45 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_plug_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
-index 770aafea..a6c728de 100644
+index ef6b8006..5f0cc774 100644
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
-@@ -1602,5 +1602,5 @@ int _snd_pcm_rate_open(snd_pcm_t **pcmp, const char *name,
+@@ -1728,5 +1728,5 @@ int _snd_pcm_rate_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -728,7 +728,7 @@ index 770aafea..a6c728de 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_rate_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c
-index d3e5f3ff..975029d6 100644
+index affb929f..737c8fa4 100644
--- a/src/pcm/pcm_route.c
+++ b/src/pcm/pcm_route.c
@@ -1430,5 +1430,5 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name,
@@ -739,10 +739,10 @@ index d3e5f3ff..975029d6 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_route_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c
-index 72509491..5d6306ea 100644
+index 0699fc87..ca0a6690 100644
--- a/src/pcm/pcm_share.c
+++ b/src/pcm/pcm_share.c
-@@ -1721,5 +1721,5 @@ _free:
+@@ -1730,5 +1730,5 @@ _free:
return err;
}
#ifndef DOC_HIDDEN
@@ -750,10 +750,10 @@ index 72509491..5d6306ea 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_share_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_shm.c b/src/pcm/pcm_shm.c
-index 26a27a57..31971686 100644
+index d9596547..2804cc67 100644
--- a/src/pcm/pcm_shm.c
+++ b/src/pcm/pcm_shm.c
-@@ -903,5 +903,5 @@ int _snd_pcm_shm_open(snd_pcm_t **pcmp, const char *name,
+@@ -904,5 +904,5 @@ int _snd_pcm_shm_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -761,10 +761,10 @@ index 26a27a57..31971686 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_shm_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/pcm/pcm_softvol.c b/src/pcm/pcm_softvol.c
-index eea322ca..49265671 100644
+index 38c63679..3eaeceda 100644
--- a/src/pcm/pcm_softvol.c
+++ b/src/pcm/pcm_softvol.c
-@@ -1270,5 +1270,5 @@ int _snd_pcm_softvol_open(snd_pcm_t **pcmp, const char *name,
+@@ -1269,5 +1269,5 @@ int _snd_pcm_softvol_open(snd_pcm_t **pcmp, const char *name,
return err;
}
#ifndef DOC_HIDDEN
@@ -772,20 +772,20 @@ index eea322ca..49265671 100644
+SND_DLSYM_BUILD_VERSION(_snd_pcm_softvol_open, SND_PCM_DLSYM_VERSION)
#endif
diff --git a/src/rawmidi/rawmidi_hw.c b/src/rawmidi/rawmidi_hw.c
-index 99927d75..b5fd0342 100644
+index 3b1d941e..83f1090f 100644
--- a/src/rawmidi/rawmidi_hw.c
+++ b/src/rawmidi/rawmidi_hw.c
-@@ -354,4 +354,4 @@ int _snd_rawmidi_hw_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
+@@ -511,4 +511,4 @@ int _snd_rawmidi_hw_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
return -EINVAL;
return snd_rawmidi_hw_open(inputp, outputp, name, card, device, subdevice, mode);
}
-SND_DLSYM_BUILD_VERSION(_snd_rawmidi_hw_open, SND_RAWMIDI_DLSYM_VERSION);
+SND_DLSYM_BUILD_VERSION(_snd_rawmidi_hw_open, SND_RAWMIDI_DLSYM_VERSION)
diff --git a/src/rawmidi/rawmidi_virt.c b/src/rawmidi/rawmidi_virt.c
-index 884b8ff8..201acb57 100644
+index 04c485d3..5bae8ea0 100644
--- a/src/rawmidi/rawmidi_virt.c
+++ b/src/rawmidi/rawmidi_virt.c
-@@ -468,5 +468,5 @@ int _snd_rawmidi_virtual_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
+@@ -466,5 +466,5 @@ int _snd_rawmidi_virtual_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
}
#ifndef DOC_HIDDEN
@@ -793,17 +793,17 @@ index 884b8ff8..201acb57 100644
+SND_DLSYM_BUILD_VERSION(_snd_rawmidi_virtual_open, SND_RAWMIDI_DLSYM_VERSION)
#endif
diff --git a/src/seq/seq_hw.c b/src/seq/seq_hw.c
-index e4b4d2a0..dddf4bf7 100644
+index eeaf26e1..d3229d72 100644
--- a/src/seq/seq_hw.c
+++ b/src/seq/seq_hw.c
-@@ -562,4 +562,4 @@ int _snd_seq_hw_open(snd_seq_t **handlep, char *name,
+@@ -630,4 +630,4 @@ int _snd_seq_hw_open(snd_seq_t **handlep, char *name,
}
return snd_seq_hw_open(handlep, name, streams, mode);
}
-SND_DLSYM_BUILD_VERSION(_snd_seq_hw_open, SND_SEQ_DLSYM_VERSION);
+SND_DLSYM_BUILD_VERSION(_snd_seq_hw_open, SND_SEQ_DLSYM_VERSION)
diff --git a/src/timer/timer.c b/src/timer/timer.c
-index 6fc710b9..a288f01f 100644
+index 0f8491b8..a139356b 100644
--- a/src/timer/timer.c
+++ b/src/timer/timer.c
@@ -649,7 +649,7 @@ int snd_timer_params_set_exclusive(snd_timer_params_t * params, int exclusive)
@@ -901,5 +901,5 @@ index d8bac6e7..8c464fc3 100644
-SND_DLSYM_BUILD_VERSION(_snd_timer_query_hw_open, SND_TIMER_QUERY_DLSYM_VERSION);
+SND_DLSYM_BUILD_VERSION(_snd_timer_query_hw_open, SND_TIMER_QUERY_DLSYM_VERSION)
--
-2.31.1
+2.44.0
diff --git a/pkg/alsa-lib/patch/0003-Don-t-use-inline-asm-on-non-GNU-compilers.patch b/pkg/alsa-lib/patch/0003-Don-t-use-inline-asm-on-non-GNU-compilers.patch
@@ -1,4 +1,4 @@
-From f0732cf0a75f47eddc200bb6fa9c91250e257a3c Mon Sep 17 00:00:00 2001
+From 613de00de55805f1c27b40ad14aae8cc2b81f7eb Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Wed, 3 Jul 2019 18:27:09 -0700
Subject: [PATCH] Don't use inline asm on non-GNU compilers
@@ -8,10 +8,10 @@ Subject: [PATCH] Don't use inline asm on non-GNU compilers
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/local.h b/include/local.h
-index ce142d04..df3e6c31 100644
+index 512e4455..a314468b 100644
--- a/include/local.h
+++ b/include/local.h
-@@ -265,7 +265,7 @@ extern snd_lib_error_handler_t snd_err_msg;
+@@ -290,7 +290,7 @@ extern snd_lib_error_handler_t snd_err_msg;
#define ASM_NAME(name) __SYMBOL_PREFIX name
@@ -21,5 +21,5 @@ index ce142d04..df3e6c31 100644
/* We want the .gnu.warning.SYMBOL section to be unallocated. */
--
-2.22.0
+2.44.0
diff --git a/pkg/alsa-lib/patch/0004-Use-switch-statements-instead-of-labels-as-values.patch b/pkg/alsa-lib/patch/0004-Use-switch-statements-instead-of-labels-as-values.patch
@@ -1,4 +1,4 @@
-From e3e74c5ad0ee6fea1aa2205f84613412df676572 Mon Sep 17 00:00:00 2001
+From b96b61f217562a207c8b310dad13d47c3c4075ba Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Fri, 31 May 2019 17:47:08 -0700
Subject: [PATCH] Use switch statements instead of labels as values
@@ -10,17 +10,16 @@ Subject: [PATCH] Use switch statements instead of labels as values
src/pcm/pcm_lfloat.c | 38 +-
src/pcm/pcm_linear.c | 22 +-
src/pcm/pcm_mulaw.c | 20 +-
- src/pcm/pcm_rate.c | 28 +-
src/pcm/pcm_rate_linear.c | 40 +-
src/pcm/pcm_route.c | 161 ++-----
- src/pcm/plugin_ops.h | 928 ++++++++++++++------------------------
- 10 files changed, 399 insertions(+), 898 deletions(-)
+ src/pcm/plugin_ops.h | 929 ++++++++++++++------------------------
+ 9 files changed, 398 insertions(+), 872 deletions(-)
diff --git a/src/pcm/pcm_adpcm.c b/src/pcm/pcm_adpcm.c
-index ae0bfae2..457ae06e 100644
+index fd9b9e8e..d4546cd0 100644
--- a/src/pcm/pcm_adpcm.c
+++ b/src/pcm/pcm_adpcm.c
-@@ -221,10 +221,6 @@ void snd_pcm_adpcm_decode(const snd_pcm_channel_area_t *dst_areas,
+@@ -220,10 +220,6 @@ void snd_pcm_adpcm_decode(const snd_pcm_channel_area_t *dst_areas,
unsigned int putidx,
snd_pcm_adpcm_state_t *states)
{
@@ -31,7 +30,7 @@ index ae0bfae2..457ae06e 100644
unsigned int channel;
for (channel = 0; channel < channels; ++channel, ++states) {
const char *src;
-@@ -250,11 +246,7 @@ void snd_pcm_adpcm_decode(const snd_pcm_channel_area_t *dst_areas,
+@@ -249,11 +245,7 @@ void snd_pcm_adpcm_decode(const snd_pcm_channel_area_t *dst_areas,
else
v = (*src >> 4) & 0x0f;
sample = adpcm_decoder(v, states);
@@ -44,7 +43,7 @@ index ae0bfae2..457ae06e 100644
src += src_step;
srcbit += srcbit_step;
if (srcbit == 8) {
-@@ -274,10 +266,6 @@ void snd_pcm_adpcm_encode(const snd_pcm_channel_area_t *dst_areas,
+@@ -273,10 +265,6 @@ void snd_pcm_adpcm_encode(const snd_pcm_channel_area_t *dst_areas,
unsigned int getidx,
snd_pcm_adpcm_state_t *states)
{
@@ -55,7 +54,7 @@ index ae0bfae2..457ae06e 100644
unsigned int channel;
int16_t sample = 0;
for (channel = 0; channel < channels; ++channel, ++states) {
-@@ -298,11 +286,7 @@ void snd_pcm_adpcm_encode(const snd_pcm_channel_area_t *dst_areas,
+@@ -297,11 +285,7 @@ void snd_pcm_adpcm_encode(const snd_pcm_channel_area_t *dst_areas,
frames1 = frames;
while (frames1-- > 0) {
int v;
@@ -69,7 +68,7 @@ index ae0bfae2..457ae06e 100644
if (dstbit)
*dst = (*dst & 0xf0) | v;
diff --git a/src/pcm/pcm_alaw.c b/src/pcm/pcm_alaw.c
-index 839783cf..bc1463a7 100644
+index 0a889183..f24e6351 100644
--- a/src/pcm/pcm_alaw.c
+++ b/src/pcm/pcm_alaw.c
@@ -148,10 +148,6 @@ void snd_pcm_alaw_decode(const snd_pcm_channel_area_t *dst_areas,
@@ -121,10 +120,10 @@ index 839783cf..bc1463a7 100644
src += src_step;
dst += dst_step;
diff --git a/src/pcm/pcm_iec958.c b/src/pcm/pcm_iec958.c
-index 0f7bf296..80145cf5 100644
+index 1afe7393..afcc5860 100644
--- a/src/pcm/pcm_iec958.c
+++ b/src/pcm/pcm_iec958.c
-@@ -150,10 +150,6 @@ static void snd_pcm_iec958_decode(snd_pcm_iec958_t *iec,
+@@ -149,10 +149,6 @@ static void snd_pcm_iec958_decode(snd_pcm_iec958_t *iec,
snd_pcm_uframes_t src_offset,
unsigned int channels, snd_pcm_uframes_t frames)
{
@@ -135,7 +134,7 @@ index 0f7bf296..80145cf5 100644
unsigned int channel;
for (channel = 0; channel < channels; ++channel) {
const uint32_t *src;
-@@ -169,11 +165,7 @@ static void snd_pcm_iec958_decode(snd_pcm_iec958_t *iec,
+@@ -168,11 +164,7 @@ static void snd_pcm_iec958_decode(snd_pcm_iec958_t *iec,
frames1 = frames;
while (frames1-- > 0) {
int32_t sample = iec958_to_s32(iec, *src);
@@ -148,7 +147,7 @@ index 0f7bf296..80145cf5 100644
src += src_step;
dst += dst_step;
}
-@@ -187,10 +179,6 @@ static void snd_pcm_iec958_encode(snd_pcm_iec958_t *iec,
+@@ -186,10 +178,6 @@ static void snd_pcm_iec958_encode(snd_pcm_iec958_t *iec,
snd_pcm_uframes_t src_offset,
unsigned int channels, snd_pcm_uframes_t frames)
{
@@ -159,7 +158,7 @@ index 0f7bf296..80145cf5 100644
unsigned int channel;
int32_t sample = 0;
int counter = iec->counter;
-@@ -217,11 +205,7 @@ static void snd_pcm_iec958_encode(snd_pcm_iec958_t *iec,
+@@ -216,11 +204,7 @@ static void snd_pcm_iec958_encode(snd_pcm_iec958_t *iec,
iec->counter = counter;
while (frames1-- > 0) {
@@ -173,10 +172,10 @@ index 0f7bf296..80145cf5 100644
// fprintf(stderr, "%d:%08x\n", frames1, sample);
*dst = sample;
diff --git a/src/pcm/pcm_lfloat.c b/src/pcm/pcm_lfloat.c
-index 0447d0a2..f51bd1fb 100644
+index 7785e4b9..2c93657d 100644
--- a/src/pcm/pcm_lfloat.c
+++ b/src/pcm/pcm_lfloat.c
-@@ -98,13 +98,6 @@ void snd_pcm_lfloat_convert_integer_float(const snd_pcm_channel_area_t *dst_area
+@@ -97,13 +97,6 @@ void snd_pcm_lfloat_convert_integer_float(const snd_pcm_channel_area_t *dst_area
unsigned int channels, snd_pcm_uframes_t frames,
unsigned int get32idx, unsigned int put32floatidx)
{
@@ -190,7 +189,7 @@ index 0447d0a2..f51bd1fb 100644
unsigned int channel;
for (channel = 0; channel < channels; ++channel) {
const char *src;
-@@ -122,16 +115,8 @@ void snd_pcm_lfloat_convert_integer_float(const snd_pcm_channel_area_t *dst_area
+@@ -121,16 +114,8 @@ void snd_pcm_lfloat_convert_integer_float(const snd_pcm_channel_area_t *dst_area
dst_step = snd_pcm_channel_area_step(dst_area);
frames1 = frames;
while (frames1-- > 0) {
@@ -209,7 +208,7 @@ index 0447d0a2..f51bd1fb 100644
src += src_step;
dst += dst_step;
}
-@@ -143,13 +128,6 @@ void snd_pcm_lfloat_convert_float_integer(const snd_pcm_channel_area_t *dst_area
+@@ -142,13 +127,6 @@ void snd_pcm_lfloat_convert_float_integer(const snd_pcm_channel_area_t *dst_area
unsigned int channels, snd_pcm_uframes_t frames,
unsigned int put32idx, unsigned int get32floatidx)
{
@@ -223,7 +222,7 @@ index 0447d0a2..f51bd1fb 100644
unsigned int channel;
for (channel = 0; channel < channels; ++channel) {
const char *src;
-@@ -167,16 +145,8 @@ void snd_pcm_lfloat_convert_float_integer(const snd_pcm_channel_area_t *dst_area
+@@ -166,16 +144,8 @@ void snd_pcm_lfloat_convert_float_integer(const snd_pcm_channel_area_t *dst_area
dst_step = snd_pcm_channel_area_step(dst_area);
frames1 = frames;
while (frames1-- > 0) {
@@ -243,10 +242,10 @@ index 0447d0a2..f51bd1fb 100644
dst += dst_step;
}
diff --git a/src/pcm/pcm_linear.c b/src/pcm/pcm_linear.c
-index 26b4f4e5..d0ba3c46 100644
+index c95d1b95..bc8c7aa8 100644
--- a/src/pcm/pcm_linear.c
+++ b/src/pcm/pcm_linear.c
-@@ -149,10 +149,6 @@ void snd_pcm_linear_convert(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufr
+@@ -148,10 +148,6 @@ void snd_pcm_linear_convert(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufr
unsigned int channels, snd_pcm_uframes_t frames,
unsigned int convidx)
{
@@ -257,7 +256,7 @@ index 26b4f4e5..d0ba3c46 100644
unsigned int channel;
for (channel = 0; channel < channels; ++channel) {
const char *src;
-@@ -167,11 +163,7 @@ void snd_pcm_linear_convert(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufr
+@@ -166,11 +162,7 @@ void snd_pcm_linear_convert(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufr
dst_step = snd_pcm_channel_area_step(dst_area);
frames1 = frames;
while (frames1-- > 0) {
@@ -270,7 +269,7 @@ index 26b4f4e5..d0ba3c46 100644
src += src_step;
dst += dst_step;
}
-@@ -183,11 +175,6 @@ void snd_pcm_linear_getput(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufra
+@@ -182,11 +174,6 @@ void snd_pcm_linear_getput(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufra
unsigned int channels, snd_pcm_uframes_t frames,
unsigned int get_idx, unsigned int put_idx)
{
@@ -282,7 +281,7 @@ index 26b4f4e5..d0ba3c46 100644
unsigned int channel;
uint32_t sample = 0;
for (channel = 0; channel < channels; ++channel) {
-@@ -203,11 +190,8 @@ void snd_pcm_linear_getput(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufra
+@@ -202,11 +189,8 @@ void snd_pcm_linear_getput(const snd_pcm_channel_area_t *dst_areas, snd_pcm_ufra
dst_step = snd_pcm_channel_area_step(dst_area);
frames1 = frames;
while (frames1-- > 0) {
@@ -297,10 +296,10 @@ index 26b4f4e5..d0ba3c46 100644
dst += dst_step;
}
diff --git a/src/pcm/pcm_mulaw.c b/src/pcm/pcm_mulaw.c
-index 58f741b6..1bab7edd 100644
+index 587fa54e..97dae154 100644
--- a/src/pcm/pcm_mulaw.c
+++ b/src/pcm/pcm_mulaw.c
-@@ -165,10 +165,6 @@ void snd_pcm_mulaw_decode(const snd_pcm_channel_area_t *dst_areas,
+@@ -164,10 +164,6 @@ void snd_pcm_mulaw_decode(const snd_pcm_channel_area_t *dst_areas,
unsigned int channels, snd_pcm_uframes_t frames,
unsigned int putidx)
{
@@ -311,7 +310,7 @@ index 58f741b6..1bab7edd 100644
unsigned int channel;
for (channel = 0; channel < channels; ++channel) {
const unsigned char *src;
-@@ -184,11 +180,7 @@ void snd_pcm_mulaw_decode(const snd_pcm_channel_area_t *dst_areas,
+@@ -183,11 +179,7 @@ void snd_pcm_mulaw_decode(const snd_pcm_channel_area_t *dst_areas,
frames1 = frames;
while (frames1-- > 0) {
int16_t sample = ulaw_to_s16(*src);
@@ -324,7 +323,7 @@ index 58f741b6..1bab7edd 100644
src += src_step;
dst += dst_step;
}
-@@ -202,10 +194,6 @@ void snd_pcm_mulaw_encode(const snd_pcm_channel_area_t *dst_areas,
+@@ -201,10 +193,6 @@ void snd_pcm_mulaw_encode(const snd_pcm_channel_area_t *dst_areas,
unsigned int channels, snd_pcm_uframes_t frames,
unsigned int getidx)
{
@@ -335,7 +334,7 @@ index 58f741b6..1bab7edd 100644
unsigned int channel;
int16_t sample = 0;
for (channel = 0; channel < channels; ++channel) {
-@@ -221,11 +209,7 @@ void snd_pcm_mulaw_encode(const snd_pcm_channel_area_t *dst_areas,
+@@ -220,11 +208,7 @@ void snd_pcm_mulaw_encode(const snd_pcm_channel_area_t *dst_areas,
dst_step = snd_pcm_channel_area_step(dst_area);
frames1 = frames;
while (frames1-- > 0) {
@@ -348,71 +347,11 @@ index 58f741b6..1bab7edd 100644
*dst = s16_to_ulaw(sample);
src += src_step;
dst += dst_step;
-diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
-index 11c3bb7c..383d7e0e 100644
---- a/src/pcm/pcm_rate.c
-+++ b/src/pcm/pcm_rate.c
-@@ -431,12 +431,6 @@ static void convert_to_s16(snd_pcm_rate_t *rate, int16_t *buf,
- snd_pcm_uframes_t offset, unsigned int frames,
- unsigned int channels)
- {
--#ifndef DOC_HIDDEN
--#define GET16_LABELS
--#include "plugin_ops.h"
--#undef GET16_LABELS
--#endif /* DOC_HIDDEN */
-- void *get = get16_labels[rate->get_idx];
- const char *src;
- int16_t sample;
- const char *srcs[channels];
-@@ -451,13 +445,7 @@ static void convert_to_s16(snd_pcm_rate_t *rate, int16_t *buf,
- while (frames--) {
- for (c = 0; c < channels; c++) {
- src = srcs[c];
-- goto *get;
--#ifndef DOC_HIDDEN
--#define GET16_END after_get
--#include "plugin_ops.h"
--#undef GET16_END
--#endif /* DOC_HIDDEN */
-- after_get:
-+ sample = get16(src, rate->get_idx);
- *buf++ = sample;
- srcs[c] += src_step[c];
- }
-@@ -469,12 +457,6 @@ static void convert_from_s16(snd_pcm_rate_t *rate, const int16_t *buf,
- snd_pcm_uframes_t offset, unsigned int frames,
- unsigned int channels)
- {
--#ifndef DOC_HIDDEN
--#define PUT16_LABELS
--#include "plugin_ops.h"
--#undef PUT16_LABELS
--#endif /* DOC_HIDDEN */
-- void *put = put16_labels[rate->put_idx];
- char *dst;
- int16_t sample;
- char *dsts[channels];
-@@ -490,13 +472,7 @@ static void convert_from_s16(snd_pcm_rate_t *rate, const int16_t *buf,
- for (c = 0; c < channels; c++) {
- dst = dsts[c];
- sample = *buf++;
-- goto *put;
--#ifndef DOC_HIDDEN
--#define PUT16_END after_put
--#include "plugin_ops.h"
--#undef PUT16_END
--#endif /* DOC_HIDDEN */
-- after_put:
-+ put16(dst, sample, rate->put_idx);
- dsts[c] += dst_step[c];
- }
- }
diff --git a/src/pcm/pcm_rate_linear.c b/src/pcm/pcm_rate_linear.c
-index 53ce902d..6e74fa71 100644
+index 35a4d8ea..56140571 100644
--- a/src/pcm/pcm_rate_linear.c
+++ b/src/pcm/pcm_rate_linear.c
-@@ -71,13 +71,6 @@ static void linear_expand(struct rate_linear *rate,
+@@ -70,13 +70,6 @@ static void linear_expand(struct rate_linear *rate,
const snd_pcm_channel_area_t *src_areas,
snd_pcm_uframes_t src_offset, unsigned int src_frames)
{
@@ -426,7 +365,7 @@ index 53ce902d..6e74fa71 100644
unsigned int get_threshold = rate->pitch;
unsigned int channel;
unsigned int src_frames1;
-@@ -107,22 +100,14 @@ static void linear_expand(struct rate_linear *rate,
+@@ -106,22 +99,14 @@ static void linear_expand(struct rate_linear *rate,
pos -= get_threshold;
old_sample = new_sample;
if (src_frames1 < src_frames) {
@@ -451,7 +390,7 @@ index 53ce902d..6e74fa71 100644
dst += dst_step;
dst_frames1++;
pos += LINEAR_DIV;
-@@ -193,13 +178,6 @@ static void linear_shrink(struct rate_linear *rate,
+@@ -192,13 +177,6 @@ static void linear_shrink(struct rate_linear *rate,
const snd_pcm_channel_area_t *src_areas,
snd_pcm_uframes_t src_offset, unsigned int src_frames)
{
@@ -465,7 +404,7 @@ index 53ce902d..6e74fa71 100644
unsigned int get_increment = rate->pitch;
unsigned int channel;
unsigned int src_frames1;
-@@ -224,13 +202,7 @@ static void linear_shrink(struct rate_linear *rate,
+@@ -223,13 +201,7 @@ static void linear_shrink(struct rate_linear *rate,
src_frames1 = 0;
dst_frames1 = 0;
while (src_frames1 < src_frames) {
@@ -480,7 +419,7 @@ index 53ce902d..6e74fa71 100644
src += src_step;
src_frames1++;
pos += get_increment;
-@@ -239,11 +211,7 @@ static void linear_shrink(struct rate_linear *rate,
+@@ -238,11 +210,7 @@ static void linear_shrink(struct rate_linear *rate,
old_weight = (pos << (32 - LINEAR_DIV_SHIFT)) / (get_increment >> (LINEAR_DIV_SHIFT - 16));
new_weight = 0x10000 - old_weight;
sample = (old_sample * old_weight + new_sample * new_weight) >> 16;
@@ -494,10 +433,10 @@ index 53ce902d..6e74fa71 100644
dst_frames1++;
if (CHECK_SANITY(dst_frames1 > dst_frames)) {
diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c
-index 975029d6..460676f5 100644
+index 737c8fa4..8cfeb175 100644
--- a/src/pcm/pcm_route.c
+++ b/src/pcm/pcm_route.c
-@@ -132,10 +132,6 @@ static void snd_pcm_route_convert1_one(const snd_pcm_channel_area_t *dst_area,
+@@ -131,10 +131,6 @@ static void snd_pcm_route_convert1_one(const snd_pcm_channel_area_t *dst_area,
const snd_pcm_route_ttable_dst_t* ttable,
const snd_pcm_route_params_t *params)
{
@@ -508,7 +447,7 @@ index 975029d6..460676f5 100644
const snd_pcm_channel_area_t *src_area = 0;
unsigned int srcidx;
const char *src;
-@@ -157,17 +153,12 @@ static void snd_pcm_route_convert1_one(const snd_pcm_channel_area_t *dst_area,
+@@ -156,17 +152,12 @@ static void snd_pcm_route_convert1_one(const snd_pcm_channel_area_t *dst_area,
return;
}
@@ -527,7 +466,7 @@ index 975029d6..460676f5 100644
src += src_step;
dst += dst_step;
}
-@@ -182,10 +173,6 @@ static void snd_pcm_route_convert1_one_getput(const snd_pcm_channel_area_t *dst_
+@@ -181,10 +172,6 @@ static void snd_pcm_route_convert1_one_getput(const snd_pcm_channel_area_t *dst_
const snd_pcm_route_ttable_dst_t* ttable,
const snd_pcm_route_params_t *params)
{
@@ -538,7 +477,7 @@ index 975029d6..460676f5 100644
const snd_pcm_channel_area_t *src_area = 0;
unsigned int srcidx;
const char *src;
-@@ -208,18 +195,13 @@ static void snd_pcm_route_convert1_one_getput(const snd_pcm_channel_area_t *dst_
+@@ -207,18 +194,13 @@ static void snd_pcm_route_convert1_one_getput(const snd_pcm_channel_area_t *dst_
return;
}
@@ -559,7 +498,7 @@ index 975029d6..460676f5 100644
src += src_step;
dst += dst_step;
}
-@@ -234,34 +216,6 @@ static void snd_pcm_route_convert1_many(const snd_pcm_channel_area_t *dst_area,
+@@ -233,34 +215,6 @@ static void snd_pcm_route_convert1_many(const snd_pcm_channel_area_t *dst_area,
const snd_pcm_route_ttable_dst_t* ttable,
const snd_pcm_route_params_t *params)
{
@@ -594,7 +533,7 @@ index 975029d6..460676f5 100644
int nsrcs = ttable->nsrcs;
char *dst;
int dst_step;
-@@ -302,11 +256,6 @@ static void snd_pcm_route_convert1_many(const snd_pcm_channel_area_t *dst_area,
+@@ -301,11 +255,6 @@ static void snd_pcm_route_convert1_many(const snd_pcm_channel_area_t *dst_area,
return;
}
@@ -606,7 +545,7 @@ index 975029d6..460676f5 100644
dst = snd_pcm_channel_area_addr(dst_area, dst_offset);
dst_step = snd_pcm_channel_area_step(dst_area);
-@@ -315,83 +264,71 @@ static void snd_pcm_route_convert1_many(const snd_pcm_channel_area_t *dst_area,
+@@ -314,83 +263,71 @@ static void snd_pcm_route_convert1_many(const snd_pcm_channel_area_t *dst_area,
sum_t sum;
/* Zero sum */
@@ -737,20 +676,21 @@ index 975029d6..460676f5 100644
}
}
diff --git a/src/pcm/plugin_ops.h b/src/pcm/plugin_ops.h
-index 6392073c..ab9bf42e 100644
+index 6392073c..049a9486 100644
--- a/src/pcm/plugin_ops.h
+++ b/src/pcm/plugin_ops.h
-@@ -19,6 +19,9 @@
+@@ -19,6 +19,10 @@
*
*/
+#include <math.h>
+#include <stdint.h>
++#include <byteswap.h>
+
#ifndef SX_INLINES
#define SX_INLINES
static inline uint32_t sx20(uint32_t x)
-@@ -92,626 +95,353 @@ static inline uint32_t sx24s(uint32_t x)
+@@ -92,626 +96,353 @@ static inline uint32_t sx24s(uint32_t x)
#define _put_triple_s(ptr,val) _put_triple_le(ptr,val)
#endif
@@ -1704,5 +1644,5 @@ index 6392073c..ab9bf42e 100644
#undef as_u8
#undef as_u16
--
-2.29.0
+2.44.0
diff --git a/pkg/alsa-lib/patch/0005-Fix-build-with-disable-ucm.patch b/pkg/alsa-lib/patch/0005-Fix-build-with-disable-ucm.patch
@@ -1,4 +1,4 @@
-From 9748480242da804020fb31b4f98f0b4d618857c2 Mon Sep 17 00:00:00 2001
+From c8871d039815024fb1aba7a10942815bdb062d4d Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 27 Jun 2021 01:17:55 -0700
Subject: [PATCH] Fix build with --disable-ucm
@@ -17,10 +17,10 @@ Signed-off-by: Michael Forney <mforney@mforney.org>
5 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/src/control/control.c b/src/control/control.c
-index 9ef72316..7d6a555f 100644
+index 4c2ae7f5..29eff715 100644
--- a/src/control/control.c
+++ b/src/control/control.c
-@@ -1520,11 +1520,14 @@ int snd_ctl_open(snd_ctl_t **ctlp, const char *name, int mode)
+@@ -1611,11 +1611,14 @@ int snd_ctl_open(snd_ctl_t **ctlp, const char *name, int mode)
int err;
assert(ctlp && name);
@@ -37,10 +37,10 @@ index 9ef72316..7d6a555f 100644
if (err < 0)
return err;
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
-index 68c919e4..6c7b72d4 100644
+index 18b1246e..23b27697 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
-@@ -2686,11 +2686,14 @@ int snd_pcm_open(snd_pcm_t **pcmp, const char *name,
+@@ -2747,11 +2747,14 @@ int snd_pcm_open(snd_pcm_t **pcmp, const char *name,
int err;
assert(pcmp && name);
@@ -57,10 +57,10 @@ index 68c919e4..6c7b72d4 100644
if (err < 0)
return err;
diff --git a/src/rawmidi/rawmidi.c b/src/rawmidi/rawmidi.c
-index 55f44821..f6a60611 100644
+index c4b45fa2..bb09e58d 100644
--- a/src/rawmidi/rawmidi.c
+++ b/src/rawmidi/rawmidi.c
-@@ -304,11 +304,14 @@ int snd_rawmidi_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
+@@ -316,11 +316,14 @@ int snd_rawmidi_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
int err;
assert((inputp || outputp) && name);
@@ -77,7 +77,7 @@ index 55f44821..f6a60611 100644
if (err < 0)
return err;
diff --git a/src/seq/seq.c b/src/seq/seq.c
-index f051426f..3330e770 100644
+index 5eac4848..71b2624f 100644
--- a/src/seq/seq.c
+++ b/src/seq/seq.c
@@ -978,11 +978,14 @@ int snd_seq_open(snd_seq_t **seqp, const char *name,
@@ -97,7 +97,7 @@ index f051426f..3330e770 100644
if (err < 0)
return err;
diff --git a/src/timer/timer.c b/src/timer/timer.c
-index a288f01f..c34c594f 100644
+index a139356b..1922981a 100644
--- a/src/timer/timer.c
+++ b/src/timer/timer.c
@@ -205,11 +205,14 @@ int snd_timer_open(snd_timer_t **timer, const char *name, int mode)
@@ -117,5 +117,5 @@ index a288f01f..c34c594f 100644
if (err < 0)
return err;
--
-2.31.1
+2.44.0
diff --git a/pkg/alsa-lib/patch/0006-Fix-uninitialized-variable-access.patch b/pkg/alsa-lib/patch/0006-Fix-uninitialized-variable-access.patch
@@ -0,0 +1,50 @@
+From 0cbb9f6afb0e9274ccdf8b3390c45afd6576b540 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 16 Mar 2024 18:08:08 -0700
+Subject: [PATCH] Fix uninitialized variable access
+
+---
+ src/pcm/pcm.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
+index 23b27697..14d868a8 100644
+--- a/src/pcm/pcm.c
++++ b/src/pcm/pcm.c
+@@ -5321,7 +5321,7 @@ EXPORT_SYMBOL int INTERNAL(snd_pcm_hw_params_get_period_size_min)(const snd_pcm_
+ int snd_pcm_hw_params_get_period_size_min(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir)
+ #endif
+ {
+- unsigned int _val = *val;
++ unsigned int _val;
+ int err = snd_pcm_hw_param_get_min(params, SND_PCM_HW_PARAM_PERIOD_SIZE, &_val, dir);
+ if (err >= 0)
+ *val = _val;
+@@ -5343,7 +5343,7 @@ EXPORT_SYMBOL int INTERNAL(snd_pcm_hw_params_get_period_size_max)(const snd_pcm_
+ int snd_pcm_hw_params_get_period_size_max(const snd_pcm_hw_params_t *params, snd_pcm_uframes_t *val, int *dir)
+ #endif
+ {
+- unsigned int _val = *val;
++ unsigned int _val;
+ int err = snd_pcm_hw_param_get_max(params, SND_PCM_HW_PARAM_PERIOD_SIZE, &_val, dir);
+ if (err >= 0)
+ *val = _val;
+@@ -6277,6 +6277,7 @@ EXPORT_SYMBOL int INTERNAL(snd_pcm_hw_params_set_tick_time_first)(snd_pcm_t *pcm
+ int snd_pcm_hw_params_set_tick_time_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir)
+ #endif
+ {
++ *val = 0;
+ return 0;
+ }
+
+@@ -6296,6 +6297,7 @@ EXPORT_SYMBOL int INTERNAL(snd_pcm_hw_params_set_tick_time_last)(snd_pcm_t *pcm
+ int snd_pcm_hw_params_set_tick_time_last(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir)
+ #endif
+ {
++ *val = 0;
+ return 0;
+ }
+
+--
+2.44.0
+
diff --git a/pkg/alsa-lib/patch/0006-control-empty-fix-the-static-build.patch b/pkg/alsa-lib/patch/0006-control-empty-fix-the-static-build.patch
@@ -1,28 +0,0 @@
-From 42f37846a9f7a7ada7fc3d7887154e62c5f748d2 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Tue, 15 Jun 2021 23:21:42 +0200
-Subject: [PATCH] control: empty - fix the static build
-
-Reported-by: Jan Palus <atler@pld-linux.org>
-Fixes: https://github.com/alsa-project/alsa-lib/issues/157
-Signed-off-by: Jaroslav Kysela <perex@perex.cz>
----
- src/control/control_empty.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/control/control_empty.c b/src/control/control_empty.c
-index 49d1026c..c9b048c1 100644
---- a/src/control/control_empty.c
-+++ b/src/control/control_empty.c
-@@ -30,7 +30,7 @@
-
- #ifndef PIC
- /* entry for static linking */
--const char *_snd_module_ctl_empty = "";
-+const char *_snd_module_control_empty = "";
- #endif
-
- /*! \page control_plugins
---
-2.32.0
-
diff --git a/pkg/alsa-lib/patch/0007-Prevent-unused-definitions-in-some-configurations.patch b/pkg/alsa-lib/patch/0007-Prevent-unused-definitions-in-some-configurations.patch
@@ -0,0 +1,85 @@
+From 4a4b059a25abbcbfeb8593cdeb3098c2bd19011a Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 16 Mar 2024 20:02:10 -0700
+Subject: [PATCH] Prevent unused definitions in some configurations
+
+---
+ src/dlmisc.c | 12 ++++++------
+ src/pcm/pcm_rate.c | 2 ++
+ 2 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/src/dlmisc.c b/src/dlmisc.c
+index 96784197..a1ab77c2 100644
+--- a/src/dlmisc.c
++++ b/src/dlmisc.c
+@@ -196,6 +196,8 @@ int snd_dlclose(void *handle)
+ #endif
+ }
+
++#ifdef HAVE_LIBDL
++#ifdef VERSIONED_SYMBOLS
+ /**
+ * \brief Verifies a dynamically loaded symbol.
+ * \param handle Library handle, similar to \c dlsym.
+@@ -208,7 +210,6 @@ int snd_dlclose(void *handle)
+ */
+ static int snd_dlsym_verify(void *handle, const char *name, const char *version)
+ {
+-#ifdef HAVE_LIBDL
+ int res;
+ char *vname;
+
+@@ -225,10 +226,9 @@ static int snd_dlsym_verify(void *handle, const char *name, const char *version)
+ if (res < 0)
+ SNDERR("unable to verify version for symbol %s", name);
+ return res;
+-#else
+- return 0;
+-#endif
+ }
++#endif
++#endif
+
+ /**
+ * \brief Resolves a symbol from a dynamic library - ALSA wrapper for \c dlsym.
+@@ -245,8 +245,6 @@ static int snd_dlsym_verify(void *handle, const char *name, const char *version)
+ */
+ void *snd_dlsym(void *handle, const char *name, const char *version)
+ {
+- int err;
+-
+ #ifndef PIC
+ if (handle == &snd_dlsym_start) {
+ /* it's the funny part: */
+@@ -262,6 +260,8 @@ void *snd_dlsym(void *handle, const char *name, const char *version)
+ #endif
+ #ifdef HAVE_LIBDL
+ #ifdef VERSIONED_SYMBOLS
++ int err;
++
+ if (version) {
+ err = snd_dlsym_verify(handle, name, version);
+ if (err < 0)
+diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
+index 5f0cc774..509b1b14 100644
+--- a/src/pcm/pcm_rate.c
++++ b/src/pcm/pcm_rate.c
+@@ -1453,6 +1453,7 @@ static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_conf
+ }
+ #endif
+
++#ifdef PIC
+ /*
+ * If the conf is an array of alternatives then the id of
+ * the first element will be "0" (or maybe NULL). Otherwise assume it is
+@@ -1477,6 +1478,7 @@ static int is_string_array(const snd_config_t *conf)
+
+ return 1;
+ }
++#endif
+
+ /**
+ * \brief Creates a new rate PCM
+--
+2.44.0
+
diff --git a/pkg/alsa-lib/ver b/pkg/alsa-lib/ver
@@ -1 +1 @@
-1.2.5.1 r0
+1.2.11 r0