Dave Bailey writes:
 any attempt by Xemacs to make a sound (ding etc) results in a SEGV.
This
 is a default Fedora installation with sound configuration:
 Sound:
   Compiling in support for sound (native).
   Compiling in support for ALSA (Advanced Linux Sound Architecture).
 I'm actually using OSS with ALSA emulation, and That might not work,
 but the SEGV seems inappropriate. The GDB output:
 
 
 Program terminated with signal 11, Segmentation fault.
 [New process 5564]
 #0  0x0000003b1fa331f7 in kill () from /lib64/libc-2.9.so
 (gdb) where
 #0  0x0000003b1fa331f7 in kill () from /lib64/libc-2.9.so
 #1  0x0000000000489fe7 in fatal_error_signal (sig=11) at emacs.c:3800
 #2  <signal handler called>
 #3  memcpy () at ../sysdeps/x86_64/memcpy.S:102
 #4  0x00000000004b21fa in waverequire (data=0x7fff73a3d720, 
 sz=0x7fff73a3d740,
     rq=8) at /usr/include/bits/string3.h:52 
What does gdb say is the value of "print *sz" here?
 #5  0x00000000004b2a30 in parsewave (data=0x7fff73a3d720, 
 sz=0x7fff73a3d740,
     outbuf=0x7fff73a3d718) at miscplay.c:174
 #6  0x00000000004afafb in linux_play_data_or_file (fd=-1,
     data=0x7fff73a3e0a0 "RIFF\"\002", length=0, volume=-1) at 
 linuxplay.c:326 
Ouch.  Here's what linuxplay.c says is in the first few lines of that
function:
static int
linux_play_data_or_file(int fd, Binbyte *data,
			int length, int volume)
{
  size_t         (*parsesndfile)(void **dayta,size_t *sz,void **outbuf);
  size_t         (*sndcnv)(void **dayta,size_t *sz,void **);
  fmtType        ffmt;
  int            fmt,speed,tracks;
  void           *pptr, *optr, *cptr, *sptr;
  int            wrtn, crtn;
  size_t         prtn, rrtn;
  Binbyte        sndbuf[SNDBUFSZ];
  /* We need to read at least the header information before we can start
     doing anything */
  if (!data || length < HEADERSZ) {
    if (fd < 0) return 0;
That is, it should exit immediately, with the failure value (HEADERSZ
is defined to be 256 in miscplay.h).
Try setting a breakpoint at linux_play_data_or_file, and single
stepping through that line to see how XEmacs manages not to return
failure here.
There's also a problem that apparently TO_EXTERNAL_FORMAT in
Fplay_sound returns zero for the length of that string which is
obviously not zero-length.
Please at least supply us with the full Installation file for XEmacs
(or XEmacs can tell you with M-x describe-installation RET) and a copy
of the sound being played, or if it's a standard one the name which
you should be able to get here:
 #7  0x000000000057b76d in Fplay_sound (sound=<value optimized
out>,
     volume=<value optimized out>, device=<value optimized out>) at 
 sound.c:440
 #8  0x000000000057bdb2 in Fding (no_terminate=9396528, sound=9142848,
     device=<value optimized out>) at sound.c:537 
with
(gdb) source .gdbinit    # find this in the src/ subdirectory
(gdb) pobj sound
which presumably is a Lisp symbol or possibly a string.
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta