I tried to compile arts-1.5.6.
Hello,
I tried to compile arts-1.5.6 with the patch as follows:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=407756
Then, the same error as the following mail occurred.
http://lists.debian.org/debian-hurd/2006/12/msg00042.html
When having looked for the cause of the error, the following
descriptions were found.
arts-1.5.6/artsc/artsdsp.c
--
(line 36)
#include <sys/soundcard.h>
(line 451)
#ifdef SNDCTL_DSP_MAPINBUF
case SNDCTL_DSP_MAPINBUF: /* _SIOR ('P', 19, buffmem_desc) */
artsdspdebug("aRts: SNDCTL_DSP_MAPINBUF unsupported\n");
break;
#endif
#ifdef SNDCTL_DSP_MAPOUTBUF
case SNDCTL_DSP_MAPOUTBUF: /* _SIOR ('P', 20, buffmem_desc) */
artsdspdebug("aRts: SNDCTL_DSP_MAPOUTBUF unsupported\n");
break;
#endif
--
/usr/include/sys/soundcard.h
--
(line 39)
#include <sys/ioctl.h>
(line 91)
#define _SIOR _IOR
(line 589)
typedef struct buffmem_desc {
unsigned *buffer;
int size;
} buffmem_desc;
/* XXX */
#define SNDCTL_DSP_MAPINBUF _SIOR ('P', 19, buffmem_desc)
#define SNDCTL_DSP_MAPOUTBUF _SIOR ('P', 20, buffmem_desc)
--
/usr/include/sys/ioctl.h
--
(line 27)
#include <bits/ioctls.h>
--
/usr/include/bits/ioctls.h
--
(line 111)
/* Basic C types. */
#define _IOT__IOTBASE_int _IOT_SIMPLE (int)
#define _IOT__IOTBASE_char _IOT_SIMPLE (char)
#define _IOT__IOTBASE_short _IOT_SIMPLE (short)
/* Standard flavors of ioctls.
_IOT_foobar is defined either in this file,
or where struct foobar is defined. */
#define _IO(g, n) _IOC (IOC_VOID, (g), (n), 0)
#define _IOIW(g, n, t) _IOC (IOC_VOID, (g), (n), _IOC_ENCODE_TYPE (t))
#define _IOR(g, n, t) _IOC (IOC_OUT, (g), (n), _IOC_ENCODE_TYPE (t))
#define _IOW(g, n, t) _IOC (IOC_IN, (g), (n), _IOC_ENCODE_TYPE (t))
#define _IOWR(g, n, t) _IOC (IOC_INOUT, (g), (n), _IOC_ENCODE_TYPE (t))
/* These macros do some preprocessor gymnastics to turn a TYPESPEC of
`struct foobar' into the identifier `_IOT_foobar', which is generally
defined using `_IOT' (above) in whatever file defines `struct foobar'.
For a TYPESPEC that does not begin with `struct' produces a different
identifier: `int' produces `_IOT__IOTBASE_int'. These identifiers
are defined for the basic C types above. */
#define _IOC_ENCODE_TYPE(typespec) _IOC_ENCODE_TYPE_1(_IOTBASE_##typespec)
#define _IOTBASE_struct
#define _IOC_ENCODE_TYPE_1(typespec) _IOC_ENCODE_TYPE_2(typespec)
#define _IOC_ENCODE_TYPE_2(typespec) _IOT_##typespec
--
Because _IOT_##typespec not assumed appeared in <bits/ioctls.h>, the
error is suggested occurring.
Could this be considered to be a bug of libc0.3-dev?
Thanks,
--
Hiroyuki Yamamoto
Reply to: