On Aug 27 14:40:14, h...@stare.cz wrote: > > > 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
This must be http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/audio/sox/patches/patch-src_sunaudio.c _______________________________________________ SoX-devel mailing list SoX-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sox-devel