Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.bugs.dist > #1015671
| From | Sebastian Ramacher <sramacher@debian.org> |
|---|---|
| Newsgroups | linux.debian.bugs.dist |
| Subject | Bug#963205: |
| Date | 2020-06-28 22:20 +0200 |
| Message-ID | <AmLWq-3RZ-13@gated-at.bofh.it> (permalink) |
| References | (1 earlier) <AlX3A-6z5-5@gated-at.bofh.it> <AjLpU-8k5-5@gated-at.bofh.it> <AlX3A-6z5-3@gated-at.bofh.it> <AjLpU-8k5-5@gated-at.bofh.it> <AlX3A-6z5-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
[Multipart message — attachments visible in raw view] - view raw
On 2020-06-26 15:46:59 +0200, Thomas Orgis wrote:
> OK,
>
> I introduced the additional wrapper now with svn commit 4743 on
> svn://scm.orgis.org/mpg123 .
>
> You can test by using current https://mpg123.org/snapshot or by
> applying the attached patch.
>
> Test reports before I release (this weekend?) are welcome.
>
>
> Alrighty then,
>
> Thomas
> Index: NEWS
> ===================================================================
> --- NEWS (revisión: 4742)
> +++ NEWS (revisión: 4743)
> @@ -10,6 +10,8 @@
> - More CMake build fixes thanks to David Callu (bug 290).
> - Use PROG_LIBS for output modules, to reinstate not necessarily proper but
> previous behaviour and fix FreeBSD port build (bug 291).
> +- Refine LFS support in libsyn123, avoiding architecture-dependent syn123.h
> + (debian bug 963205).
>
> 1.26.1
> ------
> Index: src/libsyn123/resample.c
> ===================================================================
> --- src/libsyn123/resample.c (revisión: 4742)
> +++ src/libsyn123/resample.c (revisión: 4743)
> @@ -1899,15 +1899,25 @@
> return (tot <= INT64_MAX) ? (int64_t)tot : SYN123_OVERFLOW;
> }
>
> -#if SIZEOF_LONG == 4
> -long attribute_align_arg
> -syn123_resample_total_32(long inrate, long outrate, long ins)
> +int32_t attribute_align_arg
> +syn123_resample_total_32(int32_t inrate, int32_t outrate, int32_t ins)
> {
> int64_t tot = syn123_resample_total_64(inrate, outrate, ins);
> - return (tot <= LONG_MAX) ? (long)tot : SYN123_OVERFLOW;
> + return (tot <= INT32_MAX) ? (int32_t)tot : SYN123_OVERFLOW;
> }
> +
> +lfs_alias_t syn123_resample_total(long inrate, long outrate, lfs_alias_t ins)
> +{
> +#if LFS_ALIAS_BITS+0 == 64
> + return syn123_resample_total_64(inrate, outrate, ins);
> +#elif LFS_ALIAS_BITS+0 == 32
> + return syn123_resample_total_32(inrate, outrate, ins);
> +#else
> + #error "Unexpected LFS_ALIAS_BITS value."
> #endif
> +}
>
> +
> // The inverse function: How many input samples are needed to get at least
> // the desired amount of output?
> int64_t attribute_align_arg
> @@ -1959,17 +1969,24 @@
> return (tot <= INT64_MAX) ? (int64_t)tot : SYN123_OVERFLOW;
> }
>
> -#if SIZEOF_LONG == 4
> -long attribute_align_arg
> -syn123_resample_intotal_32(long inrate, long outrate, long outs)
> +int32_t attribute_align_arg
> +syn123_resample_intotal_32(int32_t inrate, int32_t outrate, int32_t outs)
> {
> int64_t tot = syn123_resample_intotal_64(inrate, outrate, outs);
> - return (tot <= LONG_MAX) ? (long)tot : SYN123_OVERFLOW;
> + return (tot <= INT32_MAX) ? (int32_t)tot : SYN123_OVERFLOW;
> }
> +
> +lfs_alias_t syn123_resample_intotal(long inrate, long outrate, lfs_alias_t outs)
> +{
> +#if LFS_ALIAS_BITS+0 == 64
> + return syn123_resample_intotal_64(inrate, outrate, outs);
> +#elif LFS_ALIAS_BITS+0 == 32
> + return syn123_resample_intotal_32(inrate, outrate, outs);
> +#else
> + #error "Unexpected LFS_ALIAS_BITS value."
> #endif
> +}
>
> -#define syn123_resample_total syn123_resample_total_64
> -
> // As any sensible return value is at least 1, this uses the unsigned
> // type and 0 for error/pathological input.
> // This function could be simplified to
> Index: src/libsyn123/syn123.h.in
> ===================================================================
> --- src/libsyn123/syn123.h.in (revisión: 4742)
> +++ src/libsyn123/syn123.h.in (revisión: 4743)
> @@ -977,9 +977,6 @@
> # else
> # error "Unpredicted _FILE_OFFSET_BITS value."
> # endif
> -#else
> -# define syn123_resample_total syn123_resample_total_@LFS_ALIAS_BITS@
> -# define syn123_resample_intotal syn123_resample_intotal_@LFS_ALIAS_BITS@
> #endif
>
> /** Give exact output sample count for total input sample count.
Unfortunately the patch fails to build on i386:
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I./src -DPKGLIBDIR=\"/usr/lib/i386-linux-gnu/mpg123\" -I./src -I./src/compat -I./src/libmpg123 -I./src/libout123 -I./src/libmpg123 -I./src/libsyn123 -I./src/libout123 -DOPT_MULTI -DOPT_GENERIC -DOPT_GENERIC_DITHER -DOPT_I386 -DOPT_I586 -DOPT_I586_DITHER -DOPT_MMX -DOPT_3DNOW -DOPT_3DNOW_VINTAGE -DOPT_3DNOWEXT -DOPT_3DNOWEXT_VINTAGE -DOPT_SSE -DOPT_SSE_VINTAGE -DREAL_IS_FLOAT -DNEWOLD_WRITE_SAMPLE -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c src/libsyn123/resample.c -fPIC -DPIC -o src/libsyn123/.libs/resample.o
In file included from src/libsyn123/syn123_int.h:20,
from src/libsyn123/resample.c:84:
src/libsyn123/syn123.h:975:37: error: conflicting types for ‘syn123_resample_total_64’
975 | # define syn123_resample_total syn123_resample_total_64
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/libsyn123/resample.c:1909:13: note: in expansion of macro ‘syn123_resample_total’
1909 | lfs_alias_t syn123_resample_total(long inrate, long outrate, lfs_alias_t ins)
| ^~~~~~~~~~~~~~~~~~~~~
src/libsyn123/resample.c:1855:1: note: previous definition of ‘syn123_resample_total_64’ was here
1855 | syn123_resample_total_64(long inrate, long outrate, int64_t ins)
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/libsyn123/syn123_int.h:20,
from src/libsyn123/resample.c:84:
src/libsyn123/syn123.h:976:37: error: conflicting types for ‘syn123_resample_intotal_64’
976 | # define syn123_resample_intotal syn123_resample_intotal_64
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
src/libsyn123/resample.c:1979:13: note: in expansion of macro ‘syn123_resample_intotal’
1979 | lfs_alias_t syn123_resample_intotal(long inrate, long outrate, lfs_alias_t outs)
| ^~~~~~~~~~~~~~~~~~~~~~~
src/libsyn123/resample.c:1924:1: note: previous definition of ‘syn123_resample_intotal_64’ was here
1924 | syn123_resample_intotal_64(long inrate, long outrate, int64_t outs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:3849: src/libsyn123/resample.lo] Error 1
Cheers
--
Sebastian Ramacher
Back to linux.debian.bugs.dist | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Bug#963205: libmpg123-dev no longer multiarch installable Christian Klein <dvlohp@gmail.com> - 2020-06-20 15:10 +0200
Bug#963205: libmpg123-dev no longer multiarch installable Thomas Orgis <thomas-forum@orgis.org> - 2020-06-20 20:50 +0200
Bug#963205: libmpg123-dev no longer multiarch installable Sebastian Ramacher <sramacher@debian.org> - 2020-06-21 11:30 +0200
Bug#963205: libmpg123-dev no longer multiarch installable Thomas Orgis <thomas-forum@orgis.org> - 2020-06-21 12:50 +0200
Bug#963205: Now … what should I do? Thomas Orgis <thomas-forum@orgis.org> - 2020-06-25 13:00 +0200
Bug#963205: Now … what should I do? Sebastian Ramacher <sramacher@debian.org> - 2020-06-25 23:00 +0200
Bug#963205: Now … what should I do? Thomas Orgis <thomas-forum@orgis.org> - 2020-06-26 08:50 +0200
Bug#963205: Thomas Orgis <thomas-forum@orgis.org> - 2020-06-26 16:00 +0200
Bug#963205: Sebastian Ramacher <sramacher@debian.org> - 2020-06-28 22:20 +0200
Bug#963205: Thomas Orgis <thomas-forum@orgis.org> - 2020-06-29 00:10 +0200
Bug#963205: Next round Thomas Orgis <thomas-forum@orgis.org> - 2020-07-03 10:00 +0200
Bug#963205: Next round Sebastian Ramacher <sramacher@debian.org> - 2020-07-03 20:30 +0200
Bug#963205: Next round Thomas Orgis <thomas-forum@orgis.org> - 2020-07-05 11:10 +0200
csiph-web