logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: 23bb6a2a057a5e3b87d475a5cf93732338a4eff0
parent d3f95465ec2fd1080a1e0a17f24c75b7ef1bce5f
Author: Michael Forney <mforney@mforney.org>
Date:   Fri, 31 May 2019 01:23:39 -0700

alsa-lib: Fix a few portability issues

Diffstat:

Apkg/alsa-lib/patch/0002-Use-__func__-instead-of-__FUNCTION__.patch92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/alsa-lib/patch/0003-List-cases-in-range-explicitly.patch85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/alsa-lib/patch/0004-Don-t-return-in-a-void-function.patch29+++++++++++++++++++++++++++++
Apkg/alsa-lib/patch/0005-Make-sure-parameter-qualifiers-match-between-declara.patch90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/alsa-lib/patch/0006-Remove-unused-empty-struct.patch26++++++++++++++++++++++++++
Apkg/alsa-lib/patch/0007-Avoid-pointer-arithmetic-on-void.patch50++++++++++++++++++++++++++++++++++++++++++++++++++
Mpkg/alsa-lib/ver2+-
7 files changed, 373 insertions(+), 1 deletion(-)

diff --git a/pkg/alsa-lib/patch/0002-Use-__func__-instead-of-__FUNCTION__.patch b/pkg/alsa-lib/patch/0002-Use-__func__-instead-of-__FUNCTION__.patch @@ -0,0 +1,92 @@ +From 9ae6cc2bfcbac45b193c76e735033114e98c3689 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Thu, 9 May 2019 13:02:45 -0700 +Subject: [PATCH] Use __func__ instead of __FUNCTION__ + +They are equivalent, but __func__ is in C99. __FUNCTION__ exists only +for backwards compatibility with old gcc versions. + +Signed-off-by: Michael Forney <mforney@mforney.org> +--- + aserver/aserver.c | 4 ++-- + include/error.h | 8 ++++---- + include/local.h | 4 ++-- + src/pcm/pcm_share.c | 4 ++-- + 4 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/aserver/aserver.c b/aserver/aserver.c +index 066414d8..3c5ed9a4 100644 +--- a/aserver/aserver.c ++++ b/aserver/aserver.c +@@ -39,13 +39,13 @@ char *command; + + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) + #define ERROR(...) do {\ +- fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __FUNCTION__); \ ++ fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __func__); \ + fprintf(stderr, __VA_ARGS__); \ + putc('\n', stderr); \ + } while (0) + #else + #define ERROR(args...) do {\ +- fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __FUNCTION__); \ ++ fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __func__); \ + fprintf(stderr, ##args); \ + putc('\n', stderr); \ + } while (0) +diff --git a/include/error.h b/include/error.h +index 9a996aba..7239db85 100644 +--- a/include/error.h ++++ b/include/error.h +@@ -61,11 +61,11 @@ extern snd_lib_error_handler_t snd_lib_error; + extern int snd_lib_error_set_handler(snd_lib_error_handler_t handler); + + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 95) +-#define SNDERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, __VA_ARGS__) /**< Shows a sound error message. */ +-#define SYSERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, __VA_ARGS__) /**< Shows a system error message (related to \c errno). */ ++#define SNDERR(...) snd_lib_error(__FILE__, __LINE__, __func__, 0, __VA_ARGS__) /**< Shows a sound error message. */ ++#define SYSERR(...) snd_lib_error(__FILE__, __LINE__, __func__, errno, __VA_ARGS__) /**< Shows a system error message (related to \c errno). */ + #else +-#define SNDERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, ##args) /**< Shows a sound error message. */ +-#define SYSERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, ##args) /**< Shows a system error message (related to \c errno). */ ++#define SNDERR(args...) snd_lib_error(__FILE__, __LINE__, __func__, 0, ##args) /**< Shows a sound error message. */ ++#define SYSERR(args...) snd_lib_error(__FILE__, __LINE__, __func__, errno, ##args) /**< Shows a system error message (related to \c errno). */ + #endif + + /** \} */ +diff --git a/include/local.h b/include/local.h +index 5edad317..ce142d04 100644 +--- a/include/local.h ++++ b/include/local.h +@@ -244,8 +244,8 @@ size_t snd_strlcpy(char *dst, const char *src, size_t size); + #ifndef NDEBUG + #define CHECK_SANITY(x) x + extern snd_lib_error_handler_t snd_err_msg; +-#define SNDMSG(args...) snd_err_msg(__FILE__, __LINE__, __FUNCTION__, 0, ##args) +-#define SYSMSG(args...) snd_err_msg(__FILE__, __LINE__, __FUNCTION__, errno, ##args) ++#define SNDMSG(args...) snd_err_msg(__FILE__, __LINE__, __func__, 0, ##args) ++#define SYSMSG(args...) snd_err_msg(__FILE__, __LINE__, __func__, errno, ##args) + #else + #define CHECK_SANITY(x) 0 /* not evaluated */ + #define SNDMSG(args...) /* nop */ +diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c +index 5a540c4f..bff9507d 100644 +--- a/src/pcm/pcm_share.c ++++ b/src/pcm/pcm_share.c +@@ -54,11 +54,11 @@ char *snd_pcm_share_slaves_mutex_holder; + do { \ + int err = pthread_mutex_trylock(mutex); \ + if (err < 0) { \ +- fprintf(stderr, "lock " #mutex " is busy (%s): waiting in " __FUNCTION__ "\n", *(mutex##_holder)); \ ++ fprintf(stderr, "lock " #mutex " is busy (%s): waiting in " __func__ "\n", *(mutex##_holder)); \ + pthread_mutex_lock(mutex); \ + fprintf(stderr, "... got\n"); \ + } \ +- *(mutex##_holder) = __FUNCTION__; \ ++ *(mutex##_holder) = __func__; \ + } while (0) + + #define Pthread_mutex_unlock(mutex) \ +-- +2.20.1 + diff --git a/pkg/alsa-lib/patch/0003-List-cases-in-range-explicitly.patch b/pkg/alsa-lib/patch/0003-List-cases-in-range-explicitly.patch @@ -0,0 +1,85 @@ +From 43baecc2cc7e48aebd65170400b471b96ff9f99d Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Fri, 31 May 2019 01:12:51 -0700 +Subject: [PATCH] List cases in range explicitly + +Case ranges are a GNU extension, and provide only a slight readability +improvement. + +Signed-off-by: Michael Forney <mforney@mforney.org> +--- + src/conf.c | 22 ++++++++++++---------- + 1 file changed, 12 insertions(+), 10 deletions(-) + +diff --git a/src/conf.c b/src/conf.c +index cda5518e..3892b576 100644 +--- a/src/conf.c ++++ b/src/conf.c +@@ -888,7 +888,8 @@ static int get_quotedchar(input_t *input) + return '\r'; + case 'f': + return '\f'; +- case '0' ... '7': ++ case '0': case '1': case '2': case '3': ++ case '4': case '5': case '6': case '7': + { + int num = c - '0'; + int i = 1; +@@ -1479,7 +1480,8 @@ static void string_print(char *str, int id, snd_output_t *out) + } + if (!id) { + switch (*p) { +- case '0' ... '9': ++ case '0': case '1': case '2': case '3': case '4': ++ case '5': case '6': case '7': case '8': case '9': + case '-': + goto quoted; + } +@@ -1488,8 +1490,6 @@ static void string_print(char *str, int id, snd_output_t *out) + switch (*p) { + case 0: + goto nonquoted; +- case 1 ... 31: +- case 127 ... 255: + case ' ': + case '=': + case ';': +@@ -1501,6 +1501,8 @@ static void string_print(char *str, int id, snd_output_t *out) + case '"': + goto quoted; + default: ++ if (*p <= 31 || *p >= 127) ++ goto quoted; + p++; + goto loop; + } +@@ -1542,12 +1544,11 @@ static void string_print(char *str, int id, snd_output_t *out) + snd_output_putc(out, '\\'); + snd_output_putc(out, c); + break; +- case 32 ... '\'' - 1: +- case '\'' + 1 ... 126: +- snd_output_putc(out, c); +- break; + default: +- snd_output_printf(out, "\\%04o", c); ++ if (c >= 32 && c <= 126 && c != '\'') ++ snd_output_putc(out, c); ++ else ++ snd_output_printf(out, "\\%04o", c); + break; + } + p++; +@@ -4683,7 +4684,8 @@ static int parse_char(const char **ptr) + case 'f': + c = '\f'; + break; +- case '0' ... '7': ++ case '0': case '1': case '2': case '3': ++ case '4': case '5': case '6': case '7': + { + int num = c - '0'; + int i = 1; +-- +2.20.1 + diff --git a/pkg/alsa-lib/patch/0004-Don-t-return-in-a-void-function.patch b/pkg/alsa-lib/patch/0004-Don-t-return-in-a-void-function.patch @@ -0,0 +1,29 @@ +From 0188839f21a474e7a7ffcf9bddac7d6a0dd140e8 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Fri, 31 May 2019 01:15:05 -0700 +Subject: [PATCH] Don't return in a void function + +A return statement with an expression in a function returning void is +a constraint violation. + +Signed-off-by: Michael Forney <mforney@mforney.org> +--- + src/pcm/pcm_hw.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c +index 91370a88..4f104e5e 100644 +--- a/src/pcm/pcm_hw.c ++++ b/src/pcm/pcm_hw.c +@@ -1171,7 +1171,7 @@ static void __fill_chmap_ctl_id(snd_ctl_elem_id_t *id, int dev, int subdev, + static void fill_chmap_ctl_id(snd_pcm_t *pcm, snd_ctl_elem_id_t *id) + { + snd_pcm_hw_t *hw = pcm->private_data; +- return __fill_chmap_ctl_id(id, hw->device, hw->subdevice, pcm->stream); ++ __fill_chmap_ctl_id(id, hw->device, hw->subdevice, pcm->stream); + } + + static int is_chmap_type(int type) +-- +2.20.1 + diff --git a/pkg/alsa-lib/patch/0005-Make-sure-parameter-qualifiers-match-between-declara.patch b/pkg/alsa-lib/patch/0005-Make-sure-parameter-qualifiers-match-between-declara.patch @@ -0,0 +1,90 @@ +From a10d0b074483dc20ddd3678442a15bc47a63f549 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Fri, 31 May 2019 15:52:45 -0700 +Subject: [PATCH] Make sure parameter qualifiers match between declaration and + definition + +Signed-off-by: Michael Forney <mforney@mforney.org> +--- + src/pcm/pcm.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c +index 3a71d79b..c58f5933 100644 +--- a/src/pcm/pcm.c ++++ b/src/pcm/pcm.c +@@ -1997,7 +1997,7 @@ static const char *const snd_pcm_tstamp_type_names[] = { + * \param stream PCM stream type + * \return ascii name of PCM stream type + */ +-const char *snd_pcm_stream_name(snd_pcm_stream_t stream) ++const char *snd_pcm_stream_name(const snd_pcm_stream_t stream) + { + if (stream > SND_PCM_STREAM_LAST) + return NULL; +@@ -2009,7 +2009,7 @@ const char *snd_pcm_stream_name(snd_pcm_stream_t stream) + * \param acc PCM access type + * \return ascii name of PCM access type + */ +-const char *snd_pcm_access_name(snd_pcm_access_t acc) ++const char *snd_pcm_access_name(const snd_pcm_access_t acc) + { + if (acc > SND_PCM_ACCESS_LAST) + return NULL; +@@ -2021,7 +2021,7 @@ const char *snd_pcm_access_name(snd_pcm_access_t acc) + * \param format PCM sample format + * \return ascii name of PCM sample format + */ +-const char *snd_pcm_format_name(snd_pcm_format_t format) ++const char *snd_pcm_format_name(const snd_pcm_format_t format) + { + if (format > SND_PCM_FORMAT_LAST) + return NULL; +@@ -2033,7 +2033,7 @@ const char *snd_pcm_format_name(snd_pcm_format_t format) + * \param format PCM sample format + * \return ascii description of PCM sample format + */ +-const char *snd_pcm_format_description(snd_pcm_format_t format) ++const char *snd_pcm_format_description(const snd_pcm_format_t format) + { + if (format > SND_PCM_FORMAT_LAST) + return NULL; +@@ -2072,7 +2072,7 @@ snd_pcm_format_t snd_pcm_format_value(const char* name) + * \param subformat PCM sample subformat + * \return ascii name of PCM sample subformat + */ +-const char *snd_pcm_subformat_name(snd_pcm_subformat_t subformat) ++const char *snd_pcm_subformat_name(const snd_pcm_subformat_t subformat) + { + if (subformat > SND_PCM_SUBFORMAT_LAST) + return NULL; +@@ -2084,7 +2084,7 @@ const char *snd_pcm_subformat_name(snd_pcm_subformat_t subformat) + * \param subformat PCM sample subformat + * \return ascii description of PCM sample subformat + */ +-const char *snd_pcm_subformat_description(snd_pcm_subformat_t subformat) ++const char *snd_pcm_subformat_description(const snd_pcm_subformat_t subformat) + { + if (subformat > SND_PCM_SUBFORMAT_LAST) + return NULL; +@@ -2128,7 +2128,7 @@ link_warning(snd_pcm_xrun_mode_name, "Warning: xrun_mode is deprecated, consider + * \param mode PCM tstamp mode + * \return ascii name of PCM tstamp mode setting + */ +-const char *snd_pcm_tstamp_mode_name(snd_pcm_tstamp_t mode) ++const char *snd_pcm_tstamp_mode_name(const snd_pcm_tstamp_t mode) + { + if (mode > SND_PCM_TSTAMP_LAST) + return NULL; +@@ -2152,7 +2152,7 @@ const char *snd_pcm_tstamp_type_name(snd_pcm_tstamp_type_t type) + * \param state PCM state + * \return ascii name of PCM state + */ +-const char *snd_pcm_state_name(snd_pcm_state_t state) ++const char *snd_pcm_state_name(const snd_pcm_state_t state) + { + if (state > SND_PCM_STATE_LAST) + return NULL; +-- +2.20.1 + diff --git a/pkg/alsa-lib/patch/0006-Remove-unused-empty-struct.patch b/pkg/alsa-lib/patch/0006-Remove-unused-empty-struct.patch @@ -0,0 +1,26 @@ +From b2c26e9b2ef3899b640fa5a70124b0a0ce42f011 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Fri, 31 May 2019 17:48:37 -0700 +Subject: [PATCH] Remove unused empty struct + +Signed-off-by: Michael Forney <mforney@mforney.org> +--- + src/pcm/pcm_direct.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/pcm/pcm_direct.h b/src/pcm/pcm_direct.h +index da5e280e..6e66b47d 100644 +--- a/src/pcm/pcm_direct.h ++++ b/src/pcm/pcm_direct.h +@@ -181,8 +181,6 @@ struct snd_pcm_direct { + mix_areas_24_t *remix_areas_24; + mix_areas_u8_t *remix_areas_u8; + } dmix; +- struct { +- } dsnoop; + struct { + unsigned long long chn_mask; + } dshare; +-- +2.20.1 + diff --git a/pkg/alsa-lib/patch/0007-Avoid-pointer-arithmetic-on-void.patch b/pkg/alsa-lib/patch/0007-Avoid-pointer-arithmetic-on-void.patch @@ -0,0 +1,50 @@ +From e2b979b53e605b91b8e7612e4aae8e023402c86d Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 4 Jun 2019 18:59:28 -0700 +Subject: [PATCH] Avoid pointer arithmetic on `void *` + +The pointer operand to the binary `+` operator must be to a complete +object type. + +Signed-off-by: Michael Forney <mforney@mforney.org> +--- + src/pcm/pcm_rate.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c +index 5dc8a927..fdcaa8de 100644 +--- a/src/pcm/pcm_rate.c ++++ b/src/pcm/pcm_rate.c +@@ -300,10 +300,10 @@ static int snd_pcm_rate_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params) + rate->sareas = rate->pareas + channels; + rate->sareas[0].addr = (char *)rate->pareas[0].addr + ((cwidth * channels * cinfo->period_size) / 8); + for (chn = 0; chn < channels; chn++) { +- rate->pareas[chn].addr = rate->pareas[0].addr + (cwidth * chn * cinfo->period_size) / 8; ++ rate->pareas[chn].addr = (char *)rate->pareas[0].addr + (cwidth * chn * cinfo->period_size) / 8; + rate->pareas[chn].first = 0; + rate->pareas[chn].step = cwidth; +- rate->sareas[chn].addr = rate->sareas[0].addr + (swidth * chn * sinfo->period_size) / 8; ++ rate->sareas[chn].addr = (char *)rate->sareas[0].addr + (swidth * chn * sinfo->period_size) / 8; + rate->sareas[chn].first = 0; + rate->sareas[chn].step = swidth; + } +@@ -513,14 +513,14 @@ static void do_convert(const snd_pcm_channel_area_t *dst_areas, + const int16_t *src; + int16_t *dst; + if (! rate->src_buf) +- src = src_areas->addr + src_offset * 2 * channels; ++ src = (int16_t *)src_areas->addr + src_offset * channels; + else { + convert_to_s16(rate, rate->src_buf, src_areas, src_offset, + src_frames, channels); + src = rate->src_buf; + } + if (! rate->dst_buf) +- dst = dst_areas->addr + dst_offset * 2 * channels; ++ dst = (int16_t *)dst_areas->addr + dst_offset * channels; + else + dst = rate->dst_buf; + rate->ops.convert_s16(rate->obj, dst, dst_frames, src, src_frames); +-- +2.20.1 + diff --git a/pkg/alsa-lib/ver b/pkg/alsa-lib/ver @@ -1 +1 @@ -1.1.9 r0 +1.1.9 r1