sox-devel@lists.sourceforge.net unofficial mirror
 help / color / mirror / code / Atom feed
From: Jan Stary <hans@stare.cz>
To: "Måns Rullgård" <mans@mansr.com>
Cc: sox-devel@lists.sourceforge.net
Subject: Re: Build system cleanup
Date: Thu, 27 Aug 2020 14:40:14 +0200	[thread overview]
Message-ID: <20200827124014.GA20713@www.stare.cz> (raw)
In-Reply-To: <yw1xmu2gjofa.fsf@mansr.com>

> > checking for strdup... yes
> >
> > 	Not specific to NetBSD of course, but why are we running these
> > 	tests (taking strdup as a random example)? Is there a POSIX
> > 	system without strdup? And if we miss strdup, then what?
> > 	With that configure.ac line changed to check for xstrdup instead,
> > 	this will just become
> >
> > 		checking for xstrdup... no
> >
> > 	but everyting follows as before. Which means we have checked for
> > 	a function (via AC_CHECK_FUNCS), found out it does not exist,
> > 	and ignored the result. What is that for?
> 
> I already explained this about five times.

The only explanation I have seen so far is
"it was warranted in the olden days". Perhaps it was;
but why are we checking for e.g. strdup() in 2020
(and ingoring the result of AC_CHECK_FUNCS anyway)?

> > checking for sys/soundcard.h... yes
> >
> > 	On NetBSD, sys/soundcard.h says
> >
> > 		This is an OSS (Linux) audio emulator.
> >  		Use the Native NetBSD API for developing new code,
> > 		and this only for compiling Linux programs.
> >
> > 	The check is
> >
> > 	SOX_FMT_HEADERS([oss], [sys/soundcard.h], [SOUND_MIXER_MUTE],
> > 		[], [devices])
> >
> > 	so at least we correctly recognize this as OSS emulation.
> > 	But the check does not work universaly: NetBSD has
> > 	/usr/include/sys/soundcard.h -> ../soundcard.h, but e.g.
> > 	OpenBSD only has /usr/include/soundcard.h (same code though).
> > 	Apparently, the name makes a difference:
> > 	a test for "sys/soundcard.h" will fail on OpenBSD.
> >
> > checking whether SOUND_MIXER_MUTE is declared... no
> >
> > 	Why SOUND_MIXER_MUTE, specificaly, out of all the others?
> > 	For example, SOUND_MIXER_INFO is declared, which would
> > 	make the oss emulation detected (not saying this is
> > 	the correct test).
> >
> > 	Lastly, oss requires a library to be linked:
> > 	https://netbsd.gw.com/cgi-bin/man-cgi?ossaudio
> > 	That would be /usr/lib/libossaudio.so - I believe a recent
> > 	commit has concluded that oss does not require any library
> > 	(being a bunch of defined ioctls); on NetBSD, it maybe does.
> >
> > 	$ nm /usr/lib/libossaudio.so | grep oss
> > 	0000000000001f60 T _oss_ioctl
> 
> Real OSS does _not_ need a library.  That is _only_ used for the
> incomplete emulation that we don't want.  The test is chosen such that
> it passes on Linux, FreeBSD, and Solaris while failing on NetBSD and
> OpenBSD.

In case it is intended to detect OSS as not present
on OpenBSD and NetBSD (who only emulate OSS),
it seems to work as intended.

> > checking for sys/audioio.h... yes
> >
> > 	This seems to be NetBSD's native audio interface.
> > 	https://netbsd.gw.com/cgi-bin/man-cgi?audio
> > 	It's what the NetBSD port of SoX uses:
> > 	http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/audio/sox/
> >
> > checking whether AUDIO_HWFEATURE_DUPLEX is declared... no
> >
> > 	... but we miss that, because of this.
> > 	It seems NetBSD's audio system came from Sun audio
> > 	(/usr/pkg/bin/sox reports AUDIO DEVICE DRIVERS: sunau),
> > 	but it's not quite the same; in particular,
> > 	AUDIO_HWFEATURE_DUPLEX is not defined.
> 
> Already fixed.

The detectin works, thanks:

Audio devices:
  alsa                    no
  ao                      no
  coreaudio               no
  oss                     no
  pulseaudio              no
  sndio                   no
  sunaudio                yes
  waveaudio               no

It doesn't actually play though:

$ play -V -n -b 16 synth 1
play INFO sunaudio: Sun Audio driver only supports bytes and words
play:	   SoX v14.4.2
play INFO nulfile: sample rate not specified; using 48000

Input File     : '' (null)
Channels       : 1
Sample Rate    : 48000
Precision      : 32-bit

Output File    : 'default' (sunau)
Channels       : 1
Sample Rate    : 48000
Precision      : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
Endian Type    : little
Reverse Nibbles: no
Reverse Bits   : no

play INFO sox: effects chain: input	   48000Hz  1 channels
play INFO sox: effects chain: synth	   48000Hz  1 channels
play INFO sox: effects chain: dither	   48000Hz  1 channels
play INFO sox: effects chain: output	   48000Hz  1 channels
In:0.00% 00:00:00.00 [00:00:00.00] Out:0     [	    |	   ]	    Clip:0    Memory fault (core dumped)

$ gdb ~/bin/sox sox.core
GNU gdb (GDB) 7.12
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64--netbsd".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/hans/bin/sox...done.
[New process 1]
Core was generated by `sox'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  sunwrite (ft=0x713985f0c400, pInput=0x713986083000, cInput=7040)
    at sunaudio.c:481
481			    SOX_SAMPLE_TO_SIGNED_16BIT(pInput[i], cClips);
(gdb) bt
#0  sunwrite (ft=0x713985f0c400, pInput=0x713986083000, cInput=7040)
    at sunaudio.c:481
#1  0x000071398601a3bd in sox_write (ft=0x713985f0c400, buf=<optimized out>,
    len=<optimized out>) at formats.c:1037
#2  0x0000000000404be0 in output_flow (effp=<optimized out>,
    ibuf=<optimized out>, obuf=<optimized out>, isamp=0x7f7ffff6b6b0,
    osamp=<optimized out>) at sox.c:644
#3  0x0000713986029f7d in flow_effect (n=3, chain=0x713985f1c0c0)
    at effects.c:257
#4  sox_flow_effects (chain=<optimized out>,
    callback=callback@entry=0x40443e <update_status>,
    client_data=client_data@entry=0x0) at effects.c:449
#5  0x0000000000408a33 in process () at sox.c:1780
#6  main (argc=<optimized out>, argv=<optimized out>) at sox.c:2988


_______________________________________________
SoX-devel mailing list
SoX-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sox-devel

  reply	other threads:[~2020-08-27 12:40 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-27  9:21 Build system cleanup Jan Stary
2020-08-27 10:54 ` Jan Stary
2020-08-27 11:52 ` Måns Rullgård
2020-08-27 12:40   ` Jan Stary [this message]
2020-08-27 12:44     ` Jan Stary
2020-08-27 12:45     ` Måns Rullgård
2020-08-27 17:45 ` Jan Stary
2020-08-27 18:59   ` Måns Rullgård
2020-08-27 19:51     ` Jan Stary
2020-08-27 20:01 ` Jan Stary
2020-08-28  9:21   ` Måns Rullgård
2020-08-28  9:35     ` Jan Stary
2020-08-28  9:43       ` Måns Rullgård
  -- strict thread matches above, loose matches on Subject: below --
2020-08-21  8:52 Jan Stary
2020-08-21 10:36 ` Måns Rullgård
2020-08-21 12:22   ` Jan Stary
2020-08-21 12:27     ` Måns Rullgård
2020-08-19 20:40 Måns Rullgård
2020-08-20 20:40 ` Wolfgang Stoeggl via SoX-devel
2020-08-20 21:22   ` Måns Rullgård
2020-08-20 22:15     ` Wolfgang Stoeggl via SoX-devel
2020-08-21  8:24     ` Jan Stary
2020-08-21  8:16 ` Jan Stary
2020-08-21  8:31   ` Jan Stary
2020-08-21 10:28     ` Måns Rullgård
2020-08-21 12:24       ` Jan Stary
2020-08-21 12:46         ` Måns Rullgård
2020-08-21  8:49   ` Jan Stary
2020-08-21 10:33     ` Måns Rullgård
2020-08-21 12:49       ` Jan Stary
2020-08-21 12:50         ` Jan Stary
2020-08-21 13:32         ` Måns Rullgård
2020-08-21 14:09         ` Jan Stary
2020-08-21 11:15   ` Måns Rullgård
2020-08-21 14:04     ` Jan Stary
2020-08-21 14:47       ` Måns Rullgård
2020-08-21 19:26       ` Wolfgang Stoeggl
2020-08-21 20:20       ` Jan Stary
2020-08-21 15:16   ` Jan Stary
2020-08-21 15:21     ` Jan Stary
2020-08-21 17:08       ` Måns Rullgård
2020-08-21 17:43         ` Jan Stary
2020-08-21 17:52           ` Måns Rullgård
2020-08-21 17:57             ` Jan Stary
2020-08-21 20:17             ` Jan Stary
2020-08-21 20:45               ` Jan Stary
2020-08-21 21:43                 ` Måns Rullgård
2020-08-22  8:17                   ` Jan Stary
2020-08-22 10:10                     ` Måns Rullgård
2020-08-22 15:35                       ` Jan Stary
2020-08-22 15:44                         ` Jan Stary
2020-08-22 20:54                         ` Måns Rullgård
2020-08-23 14:07                           ` Jan Stary
2020-08-23 17:13                             ` Måns Rullgård
2020-08-23 19:46                               ` Jan Stary
2020-08-24 11:04                                 ` Måns Rullgård
2020-08-24 11:19                                   ` Jan Stary
2020-08-27  9:38                                     ` Jan Stary
2020-08-27 10:53                                       ` Måns Rullgård
2020-08-23 21:55                               ` Jan Stary
2020-08-24  6:56                                 ` Jan Stary
2020-08-27  9:40                                   ` Jan Stary
2020-08-27 11:08                                     ` Måns Rullgård
2020-08-27 11:37                                       ` Jan Stary
2020-08-27 11:53                                         ` Måns Rullgård
2020-08-27 13:05                                     ` Jan Stary
2020-08-27 13:31                                       ` Måns Rullgård
2020-08-27 14:10                                         ` Jan Stary
2020-08-27 14:38                                           ` Jan Stary
2020-08-27 15:11                                         ` Måns Rullgård
2020-08-27 17:41                                           ` Jan Stary
2020-08-27 18:50                                             ` Måns Rullgård
2020-08-27 19:18                                               ` Jan Stary
2020-08-28  4:54                                                 ` Jan Stary
2020-08-28  9:13                                                 ` Måns Rullgård
2020-08-24 12:19                                 ` Måns Rullgård
2020-08-24 14:43                                   ` Jan Stary
2020-08-24 14:59                                     ` Måns Rullgård
2020-08-27  9:44                                       ` Jan Stary
2020-08-27 11:08                                         ` Måns Rullgård
2020-08-24 17:22                                     ` Måns Rullgård
2020-08-22 15:43                     ` Jan Stary
2020-08-22 15:48                       ` Jan Stary
2020-08-24 12:18                   ` Jan Stary
2020-08-24 12:27                     ` Måns Rullgård
2020-08-24 13:16                       ` Jan Stary
2020-08-24 14:15                         ` Måns Rullgård
2020-08-27  9:52                           ` Jan Stary
2020-08-27 11:10                             ` Måns Rullgård

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.sourceforge.net/lists/listinfo/sox-devel

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200827124014.GA20713@www.stare.cz \
    --to=sox-devel@lists.sourceforge.net \
    --cc=mans@mansr.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/sox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).