#33 No Solaris (sparc) sound output


Hi All,

I've not been able to successfully get sound output on
my Solaris Box (a SB100 to be specific). A quick look
at the code after a ./configure it seems that in
config.h #define DRIVER_SOLARIS_AUDIO 1 gets set.
However in driver.c the function init_devices() needs
DRIVER_SOLARIS to be defined for the Solaris code to be
used - unfortunately it's not from what I can tell
grepping through the source code.

init_devices (void)
#if defined(DRIVER_ALSA)
pref = driver_alsa;
#elif defined(DRIVER_OSS)
pref = driver_oss;
#elif defined(DRIVER_SOLARIS)
pref = driver_solaris;

play_mutex = g_mutex_new ();

To get around this I added #define DRIVER_SOLARIS 1 to
config.h. The compile fails on Solaris because in
src/preferences.h dev_t needs to be defined. I added
#include <sys/types.h> before #include <tdb.h> and also
in src/question_dialogs.c sys_nerr is not a variable
defined in any Solaris header files. I did the
following to get by for the time being

if (pd->thread_errno < sys_nerr) {
sys_errstr = (char *)sys_errlist[pd->thread_errno];
} else {
sys_errstr = _("Unknown system error");
if (sys_errstr = (char *)strerror(pd->thread_errno)
== NULL) {
sys_errstr = _("Unknown system error");
sys_errstr = _("Unknown system error");

I also had to comment out #sweep_LDFLAGS = -Wl,--export
in the src/Makefile since --export is not a valid
option that can be passed to Solaris' /usr/ccs/bin/ld.
After all this everything compiled fine. Sweep starts
up and I can load files. When I click play I only get a
hum - nothing that even remotely sounds like the wav
file. However consistently sweep will core dump. Here
is the backtrace

#0 0xfe9f1920 in blkwr ()
from /usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1
(gdb) bt
#0 0xfe9f1920 in blkwr ()
from /usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1
#1 0x2b7e8 in head_read (head=0xd0ed8, buf=0xa5eac998,
at play.c:628
#2 0x2c040 in play_head (nymhead=0x15aa30) at play.c:835

I'm also experiencing another issue. When I try to
bring up the "Configure audio device" dialog I get
nothing. I'll take a bit more of a look at the code in
driver.c but the function that seems to deal with the
dialog is definatelu being called - I threw a few
printfs just to verify.

device_config (void)
printf ("BEFORE: device_config (void)\n");
if (pref->config)
pref->config ();
printf ("AFTER: device_config (void)\n");

Any suggestions?


  • Conrad Parker

    Conrad Parker - 2002-10-30

    Logged In: YES

    ok, I've applied the above compilation fixes in Sweep 0.5.10:

  • Conrad Parker

    Conrad Parker - 2002-10-30

    Logged In: YES

    Details (0.5.10):

    src/driver.c (should now build ok)

    2. #include <sys/types.h> added to src/preferences.c (above

    3. src/question_dialogs.c now uses strerror_r instead of
    sys_errlist and sys_nerr; this is more standard.

    4. commented out sweep_LDFLAGS in src/Makefile.am

    Please let me know if Sweep 0.5.10 now builds correctly on

  • Conrad Parker

    Conrad Parker - 2004-04-28
    • assigned_to: nobody --> conrad
    • status: open --> closed-fixed

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks