Package: libasound2
Version: 1.1.8-2
Followup-For: Bug #870396

Still exists… updated debdiff anbei.

Verified 1.1.8-2+x32.1 to work.

-- System Information:
Debian Release: bullseye/sid
  APT prefers unreleased
  APT policy: (500, 'unreleased'), (500, 'buildd-unstable'), (500, 'unstable'), 
(100, 'experimental')
Architecture: x32 (x86_64)
Foreign Architectures: i386, amd64

Kernel: Linux 5.2.0-3-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)
Shell: /bin/sh linked to /bin/lksh
Init: sysvinit (via /sbin/init)

Versions of packages libasound2:x32 depends on:
ii  libasound2-data  1.1.8-2
ii  libc6            2.29-2

libasound2:x32 recommends no packages.

Versions of packages libasound2:x32 suggests:
pn  libasound2-plugins  <none>

-- no debconf information
diff -Nru alsa-lib-1.1.8/debian/changelog alsa-lib-1.1.8/debian/changelog
--- alsa-lib-1.1.8/debian/changelog     2019-10-11 12:44:01.000000000 +0200
+++ alsa-lib-1.1.8/debian/changelog     2019-10-17 19:52:52.000000000 +0200
@@ -1,3 +1,10 @@
+alsa-lib (1.1.8-2+x32.1) unreleased; urgency=high
+
+  * Non-maintainer upload.
+  * Add patches fixing sound on x32. (Closes: #870396)
+
+ -- Thorsten Glaser <t...@mirbsd.de>  Thu, 17 Oct 2019 19:52:52 +0200
+
 alsa-lib (1.1.8-2) unstable; urgency=medium
 
   * Get rid of old, unused patches.
diff -Nru alsa-lib-1.1.8/debian/patches/0009-fix-format-strings.patch 
alsa-lib-1.1.8/debian/patches/0009-fix-format-strings.patch
--- alsa-lib-1.1.8/debian/patches/0009-fix-format-strings.patch 1970-01-01 
01:00:00.000000000 +0100
+++ alsa-lib-1.1.8/debian/patches/0009-fix-format-strings.patch 2019-10-17 
19:52:23.000000000 +0200
@@ -0,0 +1,73 @@
+# DP: fix long vs. long long confusion when there is a 64-bit time_t
+# DP: on a 32-bit long system, such as all newer 32-bit architectures
+
+--- a/src/pcm/pcm.c
++++ b/src/pcm/pcm.c
+@@ -2257,11 +2257,11 @@ int snd_pcm_status_dump(snd_pcm_status_t
+ {
+       assert(status);
+       snd_output_printf(out, "  state       : %s\n", 
snd_pcm_state_name((snd_pcm_state_t) status->state));
+-      snd_output_printf(out, "  trigger_time: %ld.%06ld\n",
+-                        status->trigger_tstamp.tv_sec,
+-                        status->trigger_tstamp.tv_nsec / 1000);
+-      snd_output_printf(out, "  tstamp      : %ld.%06ld\n",
+-              status->tstamp.tv_sec, status->tstamp.tv_nsec / 1000);
++      snd_output_printf(out, "  trigger_time: %lld.%06ld\n",
++                        (long long)status->trigger_tstamp.tv_sec,
++                        (long)status->trigger_tstamp.tv_nsec / 1000L);
++      snd_output_printf(out, "  tstamp      : %lld.%06ld\n",
++              (long long)status->tstamp.tv_sec, (long)status->tstamp.tv_nsec 
/ 1000L);
+       snd_output_printf(out, "  delay       : %ld\n", (long)status->delay);
+       snd_output_printf(out, "  avail       : %ld\n", (long)status->avail);
+       snd_output_printf(out, "  avail_max   : %ld\n", 
(long)status->avail_max);
+--- a/test/latency.c
++++ b/test/latency.c
+@@ -325,12 +325,12 @@ void setscheduler(void)
+       printf("!!!Scheduler set to Round Robin with priority %i FAILED!!!\n", 
sched_param.sched_priority);
+ }
+ 
+-long timediff(snd_timestamp_t t1, snd_timestamp_t t2)
++long long timediff(snd_timestamp_t t1, snd_timestamp_t t2)
+ {
+-      signed long l;
++      signed long long l;
+ 
+       t1.tv_sec -= t2.tv_sec;
+-      l = (signed long) t1.tv_usec - (signed long) t2.tv_usec;
++      l = (signed long long) t1.tv_usec - (signed long long) t2.tv_usec;
+       if (l < 0) {
+               t1.tv_sec--;
+               l = 1000000 + l;
+@@ -682,10 +682,10 @@ int main(int argc, char *argv[])
+               snd_pcm_nonblock(phandle, !block ? 1 : 0);
+               if (ok) {
+ #if 1
+-                      printf("Playback time = %li.%i, Record time = %li.%i, 
diff = %li\n",
+-                             p_tstamp.tv_sec,
++                      printf("Playback time = %lli.%i, Record time = %lli.%i, 
diff = %lli\n",
++                             (long long)p_tstamp.tv_sec,
+                              (int)p_tstamp.tv_usec,
+-                             c_tstamp.tv_sec,
++                             (long long)c_tstamp.tv_sec,
+                              (int)c_tstamp.tv_usec,
+                              timediff(p_tstamp, c_tstamp));
+ #endif
+--- a/test/queue_timer.c
++++ b/test/queue_timer.c
+@@ -99,11 +99,11 @@ main(int argc ATTRIBUTE_UNUSED, char **a
+       normalize(&diffdiff);
+       prevdiff = diff;
+ 
+-      fprintf(stderr, " real time: %12ld sec %8ld usec\nqueue time: %12ld sec 
%8ld usec\n      diff: %12ld sec %8ld usec\n  diffdiff: %12ld sec %8ld usec\n",
+-              tv.tv_sec, tv.tv_usec,
+-              (long)rtime->tv_sec, (long)rtime->tv_nsec / 1000,
+-              diff.tv_sec, diff.tv_usec,
+-              (long)diffdiff.tv_sec, (long)diffdiff.tv_usec);
++      fprintf(stderr, " real time: %12lld sec %8ld usec\nqueue time: %12lld 
sec %8ld usec\n      diff: %12lld sec %8ld usec\n  diffdiff: %12lld sec %8ld 
usec\n",
++              (long long)tv.tv_sec, (long)tv.tv_usec,
++              (long long)rtime->tv_sec, (long)rtime->tv_nsec / 1000,
++              (long long)diff.tv_sec, (long)diff.tv_usec,
++              (long long)diffdiff.tv_sec, (long)diffdiff.tv_usec);
+ 
+       if (diffdiff.tv_usec >  5000 ||
+           diffdiff.tv_usec < -5000) {
diff -Nru alsa-lib-1.1.8/debian/patches/0011-distinguish-x32-from-amd64.patch 
alsa-lib-1.1.8/debian/patches/0011-distinguish-x32-from-amd64.patch
--- alsa-lib-1.1.8/debian/patches/0011-distinguish-x32-from-amd64.patch 
1970-01-01 01:00:00.000000000 +0100
+++ alsa-lib-1.1.8/debian/patches/0011-distinguish-x32-from-amd64.patch 
2019-10-17 19:52:23.000000000 +0200
@@ -0,0 +1,14 @@
+# DP: fix segmentation fault coming from this using amd64 assembly code
+# DP: on x32 systems
+
+--- a/src/pcm/pcm_dmix.c
++++ b/src/pcm/pcm_dmix.c
+@@ -145,7 +145,7 @@ static void dmix_server_free(snd_pcm_dir
+ #include "pcm_dmix_generic.c"
+ #if defined(__i386__)
+ #include "pcm_dmix_i386.c"
+-#elif defined(__x86_64__)
++#elif defined(__x86_64__) && !defined(__ILP32__)
+ #include "pcm_dmix_x86_64.c"
+ #else
+ #ifndef DOC_HIDDEN
diff -Nru alsa-lib-1.1.8/debian/patches/series 
alsa-lib-1.1.8/debian/patches/series
--- alsa-lib-1.1.8/debian/patches/series        2019-10-11 12:11:55.000000000 
+0200
+++ alsa-lib-1.1.8/debian/patches/series        2019-10-17 19:52:35.000000000 
+0200
@@ -1,3 +1,5 @@
 0001-Enabled-extended-namehints-in-alsa.conf.patch
 0002-Add-a-configuration-for-tegra-alc5632-based-cards.patch
 0003-conf-ucm-sof-skl_hda_card-backport.patch
+0009-fix-format-strings.patch
+0011-distinguish-x32-from-amd64.patch

Reply via email to