[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: