Fix build on NetBSD 4.0.diff -r1.9 -r1.10 pkgsrc/audio/pulseaudio/Makefile
(jmcneill)
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | # $NetBSD: Makefile,v 1.9 2008/12/22 03:32:11 jmcneill Exp $ | 1 | # $NetBSD: Makefile,v 1.10 2008/12/23 19:29:28 jmcneill Exp $ | |
2 | # | 2 | # | |
3 | 3 | |||
4 | DISTNAME= pulseaudio-0.9.13 | 4 | DISTNAME= pulseaudio-0.9.13 | |
5 | PKGREVISION= 3 | 5 | PKGREVISION= 3 | |
6 | CATEGORIES= audio | 6 | CATEGORIES= audio | |
7 | MASTER_SITES= http://0pointer.de/lennart/projects/pulseaudio/ | 7 | MASTER_SITES= http://0pointer.de/lennart/projects/pulseaudio/ | |
8 | 8 | |||
9 | MAINTAINER= pkgsrc-users@NetBSD.org | 9 | MAINTAINER= pkgsrc-users@NetBSD.org | |
10 | HOMEPAGE= http://www.pulseaudio.org/ | 10 | HOMEPAGE= http://www.pulseaudio.org/ | |
11 | COMMENT= Sound server for POSIX and Win32 systems | 11 | COMMENT= Sound server for POSIX and Win32 systems | |
12 | 12 | |||
13 | GNU_CONFIGURE= yes | 13 | GNU_CONFIGURE= yes | |
14 | USE_LIBTOOL= yes | 14 | USE_LIBTOOL= yes | |
@@ -62,26 +62,27 @@ CONFIGURE_ENV+= cc_cv_tls___thread=no | @@ -62,26 +62,27 @@ CONFIGURE_ENV+= cc_cv_tls___thread=no | |||
62 | 62 | |||
63 | PKG_GROUPS= ${PULSE_GROUP} | 63 | PKG_GROUPS= ${PULSE_GROUP} | |
64 | PKG_GROUPS+= ${PULSE_GROUP_REALTIME} | 64 | PKG_GROUPS+= ${PULSE_GROUP_REALTIME} | |
65 | PKG_GROUPS+= ${PULSE_GROUP_ACCESS} | 65 | PKG_GROUPS+= ${PULSE_GROUP_ACCESS} | |
66 | PKG_USERS= ${PULSE_USER}:${PULSE_GROUP} | 66 | PKG_USERS= ${PULSE_USER}:${PULSE_GROUP} | |
67 | 67 | |||
68 | BUILDLINK_TRANSFORM+= rm:-Wl,--gc-sections | 68 | BUILDLINK_TRANSFORM+= rm:-Wl,--gc-sections | |
69 | 69 | |||
70 | # Use native atomic ops on NetBSD >= 5.0, otherwise | 70 | # Use native atomic ops on NetBSD >= 5.0, otherwise | |
71 | # fallback to libatomic_ops | 71 | # fallback to libatomic_ops | |
72 | .if ${OPSYS} == "NetBSD" && exists(/usr/include/sys/atomic.h) | 72 | .if ${OPSYS} == "NetBSD" && exists(/usr/include/sys/atomic.h) | |
73 | CONFIGURE_ARGS+= --enable-netbsd-atomic-ops | 73 | CONFIGURE_ARGS+= --enable-netbsd-atomic-ops | |
74 | .else | 74 | .else | |
75 | CONFIGURE_ARGS+= --disable-netbsd-atomic-ops | |||
75 | .include "../../devel/libatomic_ops/buildlink3.mk" | 76 | .include "../../devel/libatomic_ops/buildlink3.mk" | |
76 | .endif | 77 | .endif | |
77 | 78 | |||
78 | # avahi support | 79 | # avahi support | |
79 | .if !empty(PKG_OPTIONS:Mavahi) | 80 | .if !empty(PKG_OPTIONS:Mavahi) | |
80 | .include "../../net/avahi/buildlink3.mk" | 81 | .include "../../net/avahi/buildlink3.mk" | |
81 | PLIST.avahi= yes | 82 | PLIST.avahi= yes | |
82 | .else | 83 | .else | |
83 | CONFIGURE_ARGS+= --disable-avahi | 84 | CONFIGURE_ARGS+= --disable-avahi | |
84 | .endif | 85 | .endif | |
85 | 86 | |||
86 | pre-configure: | 87 | pre-configure: | |
87 | cd ${WRKSRC} && autoreconf -f | 88 | cd ${WRKSRC} && autoreconf -f |
@@ -1,17 +1,18 @@ | @@ -1,17 +1,18 @@ | |||
1 | $NetBSD: distinfo,v 1.7 2008/12/23 08:58:01 dsainty Exp $ | 1 | $NetBSD: distinfo,v 1.8 2008/12/23 19:29:29 jmcneill Exp $ | |
2 | 2 | |||
3 | SHA1 (pulseaudio-0.9.13.tar.gz) = c8482f1bb42d5213bfdbe2154e1a55b7bc04c915 | 3 | SHA1 (pulseaudio-0.9.13.tar.gz) = c8482f1bb42d5213bfdbe2154e1a55b7bc04c915 | |
4 | RMD160 (pulseaudio-0.9.13.tar.gz) = 07cea9939dfb4fc76f13bf01dfe22ab6d0fd8459 | 4 | RMD160 (pulseaudio-0.9.13.tar.gz) = 07cea9939dfb4fc76f13bf01dfe22ab6d0fd8459 | |
5 | Size (pulseaudio-0.9.13.tar.gz) = 1308493 bytes | 5 | Size (pulseaudio-0.9.13.tar.gz) = 1308493 bytes | |
6 | SHA1 (patch-aa) = b29591d8d338a4521d4aa0fb1dcd726368cb2304 | 6 | SHA1 (patch-aa) = 1493bed9c983c5c2a69f059b43926b936c62ccb7 | |
7 | SHA1 (patch-ab) = b894cf1797a2f02e8131be8abc8250774bfec1ec | 7 | SHA1 (patch-ab) = b894cf1797a2f02e8131be8abc8250774bfec1ec | |
8 | SHA1 (patch-ac) = 8f61cf7c4a6681ab53c9ddf1007acb1bf524fe15 | 8 | SHA1 (patch-ac) = e19d134985565da015e8db6a1f29483e68ba1a2e | |
9 | SHA1 (patch-ad) = 40474c4e04dffe836c41ff348d959c821da527fd | 9 | SHA1 (patch-ad) = 40474c4e04dffe836c41ff348d959c821da527fd | |
10 | SHA1 (patch-ae) = 1cd31d18c133fdd5e8db59be319ba5b7a45fe0fe | 10 | SHA1 (patch-ae) = 1cd31d18c133fdd5e8db59be319ba5b7a45fe0fe | |
11 | SHA1 (patch-af) = 31b8564cb91aabb5de5490659e77de984fd1920b | 11 | SHA1 (patch-af) = 31b8564cb91aabb5de5490659e77de984fd1920b | |
12 | SHA1 (patch-ag) = 67e3330c52c605e1eec505166e4ceed1a1277b11 | 12 | SHA1 (patch-ag) = 67e3330c52c605e1eec505166e4ceed1a1277b11 | |
13 | SHA1 (patch-ah) = 13cee1dc10be17f51978208843048ba9db7d9a3f | 13 | SHA1 (patch-ah) = 13cee1dc10be17f51978208843048ba9db7d9a3f | |
14 | SHA1 (patch-ai) = b8e9e2dee9d1c5d9de488cfa0d06440eedacb7c6 | 14 | SHA1 (patch-ai) = b8e9e2dee9d1c5d9de488cfa0d06440eedacb7c6 | |
15 | SHA1 (patch-aj) = 50edf909d5d7cc35e925685cdf0831e73d06f6ec | 15 | SHA1 (patch-aj) = 50edf909d5d7cc35e925685cdf0831e73d06f6ec | |
16 | SHA1 (patch-ba) = b3e587cad73564c47ec921cf1c916d89102d36db | 16 | SHA1 (patch-ak) = d2ed994750f4aadaa9c50abb4374c4dab363d01e | |
17 | SHA1 (patch-bb) = ded51f4642163dd5f78bb51522df64cb6ef8b985 | 17 | SHA1 (patch-ba) = da9742d49ecb409cd13bee4468e64f982c03cffe | |
18 | SHA1 (patch-bb) = ae0209dac352df7abfcf66c452f2ebb91e35e42a |
@@ -1,82 +1,93 @@ | @@ -1,82 +1,93 @@ | |||
1 | $NetBSD: patch-aa,v 1.3 2008/12/23 08:58:01 dsainty Exp $ | 1 | $NetBSD: patch-aa,v 1.4 2008/12/23 19:29:29 jmcneill Exp $ | |
2 | 2 | |||
3 | --- src/utils/padsp.c.orig 2008-10-01 19:05:01.000000000 -0400 | 3 | --- src/utils/padsp.c.orig 2008-10-01 19:05:01.000000000 -0400 | |
4 | +++ src/utils/padsp.c | 4 | +++ src/utils/padsp.c 2008-12-23 12:55:02.000000000 -0500 | |
5 | @@ -114,7 +114,11 @@ static pthread_mutex_t func_mutex = PTHR | 5 | @@ -59,6 +59,10 @@ | |
6 | # define SIOCINQ FIONREAD | |||
7 | #endif | |||
8 | ||||
9 | +#if !defined(SNDCTL_DSP_GETODELAY) | |||
10 | +# define SNDCTL_DSP_GETODELAY _IOR ('P', 23, int) | |||
11 | +#endif | |||
12 | + | |||
13 | /* make sure gcc doesn't redefine open and friends as macros */ | |||
14 | #undef open | |||
15 | #undef open64 | |||
16 | @@ -114,7 +118,11 @@ static pthread_mutex_t func_mutex = PTHR | |||
6 | 17 | |||
7 | static PA_LLIST_HEAD(fd_info, fd_infos) = NULL; | 18 | static PA_LLIST_HEAD(fd_info, fd_infos) = NULL; | |
8 | 19 | |||
9 | +#ifdef __NetBSD__ | 20 | +#ifdef __NetBSD__ | |
10 | +static int (*_ioctl)(int, u_long, void *) = NULL; | 21 | +static int (*_ioctl)(int, u_long, void *) = NULL; | |
11 | +#else | 22 | +#else | |
12 | static int (*_ioctl)(int, int, void*) = NULL; | 23 | static int (*_ioctl)(int, int, void*) = NULL; | |
13 | +#endif | 24 | +#endif | |
14 | static int (*_close)(int) = NULL; | 25 | static int (*_close)(int) = NULL; | |
15 | static int (*_open)(const char *, int, mode_t) = NULL; | 26 | static int (*_open)(const char *, int, mode_t) = NULL; | |
16 | static FILE* (*_fopen)(const char *path, const char *mode) = NULL; | 27 | static FILE* (*_fopen)(const char *path, const char *mode) = NULL; | |
17 | @@ -140,6 +144,15 @@ static inline fnptr dlsym_fn(void *handl | 28 | @@ -140,6 +148,15 @@ static inline fnptr dlsym_fn(void *handl | |
18 | return (fnptr) (long) dlsym(handle, symbol); | 29 | return (fnptr) (long) dlsym(handle, symbol); | |
19 | } | 30 | } | |
20 | 31 | |||
21 | +#ifdef __NetBSD__ | 32 | +#ifdef __NetBSD__ | |
22 | +#define LOAD_IOCTL_FUNC() \ | 33 | +#define LOAD_IOCTL_FUNC() \ | |
23 | +do { \ | 34 | +do { \ | |
24 | + pthread_mutex_lock(&func_mutex); \ | 35 | + pthread_mutex_lock(&func_mutex); \ | |
25 | + if (!_ioctl) \ | 36 | + if (!_ioctl) \ | |
26 | + _ioctl = (int (*)(int, u_long, void*)) dlsym_fn(RTLD_NEXT, "ioctl"); \ | 37 | + _ioctl = (int (*)(int, u_long, void*)) dlsym_fn(RTLD_NEXT, "ioctl"); \ | |
27 | + pthread_mutex_unlock(&func_mutex); \ | 38 | + pthread_mutex_unlock(&func_mutex); \ | |
28 | +} while(0) | 39 | +} while(0) | |
29 | +#else | 40 | +#else | |
30 | #define LOAD_IOCTL_FUNC() \ | 41 | #define LOAD_IOCTL_FUNC() \ | |
31 | do { \ | 42 | do { \ | |
32 | pthread_mutex_lock(&func_mutex); \ | 43 | pthread_mutex_lock(&func_mutex); \ | |
33 | @@ -147,6 +160,7 @@ do { \ | 44 | @@ -147,6 +164,7 @@ do { \ | |
34 | _ioctl = (int (*)(int, int, void*)) dlsym_fn(RTLD_NEXT, "ioctl"); \ | 45 | _ioctl = (int (*)(int, int, void*)) dlsym_fn(RTLD_NEXT, "ioctl"); \ | |
35 | pthread_mutex_unlock(&func_mutex); \ | 46 | pthread_mutex_unlock(&func_mutex); \ | |
36 | } while(0) | 47 | } while(0) | |
37 | +#endif | 48 | +#endif | |
38 | 49 | |||
39 | #define LOAD_OPEN_FUNC() \ | 50 | #define LOAD_OPEN_FUNC() \ | |
40 | do { \ | 51 | do { \ | |
41 | @@ -180,11 +194,16 @@ do { \ | 52 | @@ -180,11 +198,16 @@ do { \ | |
42 | pthread_mutex_unlock(&func_mutex); \ | 53 | pthread_mutex_unlock(&func_mutex); \ | |
43 | } while(0) | 54 | } while(0) | |
44 | 55 | |||
45 | +#ifdef __NetBSD__ | 56 | +#ifdef __NetBSD__ | |
46 | +#define STAT_FUNC "__stat30" | 57 | +#define STAT_FUNC "__stat30" | |
47 | +#else | 58 | +#else | |
48 | +#define STAT_FUNC "stat" | 59 | +#define STAT_FUNC "stat" | |
49 | +#endif | 60 | +#endif | |
50 | #define LOAD_STAT_FUNC() \ | 61 | #define LOAD_STAT_FUNC() \ | |
51 | do { \ | 62 | do { \ | |
52 | pthread_mutex_lock(&func_mutex); \ | 63 | pthread_mutex_lock(&func_mutex); \ | |
53 | if (!_stat) \ | 64 | if (!_stat) \ | |
54 | - _stat = (int (*)(const char *, struct stat *)) dlsym_fn(RTLD_NEXT, "stat"); \ | 65 | - _stat = (int (*)(const char *, struct stat *)) dlsym_fn(RTLD_NEXT, "stat"); \ | |
55 | + _stat = (int (*)(const char *, struct stat *)) dlsym_fn(RTLD_NEXT, STAT_FUNC); \ | 66 | + _stat = (int (*)(const char *, struct stat *)) dlsym_fn(RTLD_NEXT, STAT_FUNC); \ | |
56 | pthread_mutex_unlock(&func_mutex); \ | 67 | pthread_mutex_unlock(&func_mutex); \ | |
57 | } while(0) | 68 | } while(0) | |
58 | 69 | |||
59 | @@ -1452,7 +1471,8 @@ static int real_open(const char *filenam | 70 | @@ -1452,7 +1475,8 @@ static int real_open(const char *filenam | |
60 | return _open(filename, flags, mode); | 71 | return _open(filename, flags, mode); | |
61 | } | 72 | } | |
62 | 73 | |||
63 | - if (filename && dsp_cloak_enable() && (strcmp(filename, "/dev/dsp") == 0 || strcmp(filename, "/dev/adsp") == 0)) | 74 | - if (filename && dsp_cloak_enable() && (strcmp(filename, "/dev/dsp") == 0 || strcmp(filename, "/dev/adsp") == 0)) | |
64 | + if (filename && dsp_cloak_enable() && (strcmp(filename, "/dev/dsp") == 0 || strcmp(filename, "/dev/adsp") == 0 || | 75 | + if (filename && dsp_cloak_enable() && (strcmp(filename, "/dev/dsp") == 0 || strcmp(filename, "/dev/adsp") == 0 || | |
65 | + strcmp(filename, "/dev/sound") == 0 || strcmp(filename, "/dev/audio") == 0)) | 76 | + strcmp(filename, "/dev/sound") == 0 || strcmp(filename, "/dev/audio") == 0)) | |
66 | r = dsp_open(flags, &_errno); | 77 | r = dsp_open(flags, &_errno); | |
67 | else if (filename && mixer_cloak_enable() && strcmp(filename, "/dev/mixer") == 0) | 78 | else if (filename && mixer_cloak_enable() && strcmp(filename, "/dev/mixer") == 0) | |
68 | r = mixer_open(flags, &_errno); | 79 | r = mixer_open(flags, &_errno); | |
69 | @@ -2313,19 +2333,27 @@ fail: | 80 | @@ -2313,19 +2337,27 @@ fail: | |
70 | 81 | |||
71 | #ifdef sun | 82 | #ifdef sun | |
72 | int ioctl(int fd, int request, ...) { | 83 | int ioctl(int fd, int request, ...) { | |
73 | +#elif defined(__NetBSD__) | 84 | +#elif defined(__NetBSD__) | |
74 | +int ioctl(int fd, u_long request, void *_argp) { | 85 | +int ioctl(int fd, u_long request, void *_argp) { | |
75 | #else | 86 | #else | |
76 | int ioctl(int fd, unsigned long request, ...) { | 87 | int ioctl(int fd, unsigned long request, ...) { | |
77 | #endif | 88 | #endif | |
78 | fd_info *i; | 89 | fd_info *i; | |
79 | +#ifndef __NetBSD__ | 90 | +#ifndef __NetBSD__ | |
80 | va_list args; | 91 | va_list args; | |
81 | +#endif | 92 | +#endif | |
82 | void *argp; | 93 | void *argp; | |
@@ -84,85 +95,85 @@ $NetBSD: patch-aa,v 1.3 2008/12/23 08:58 | @@ -84,85 +95,85 @@ $NetBSD: patch-aa,v 1.3 2008/12/23 08:58 | |||
84 | 95 | |||
85 | debug(DEBUG_LEVEL_VERBOSE, __FILE__": ioctl()\n"); | 96 | debug(DEBUG_LEVEL_VERBOSE, __FILE__": ioctl()\n"); | |
86 | 97 | |||
87 | +#ifdef __NetBSD__ | 98 | +#ifdef __NetBSD__ | |
88 | + argp = _argp; | 99 | + argp = _argp; | |
89 | +#else | 100 | +#else | |
90 | va_start(args, request); | 101 | va_start(args, request); | |
91 | argp = va_arg(args, void *); | 102 | argp = va_arg(args, void *); | |
92 | va_end(args); | 103 | va_end(args); | |
93 | +#endif | 104 | +#endif | |
94 | 105 | |||
95 | if (!function_enter()) { | 106 | if (!function_enter()) { | |
96 | LOAD_IOCTL_FUNC(); | 107 | LOAD_IOCTL_FUNC(); | |
97 | @@ -2383,6 +2411,8 @@ int access(const char *pathname, int mod | 108 | @@ -2383,6 +2415,8 @@ int access(const char *pathname, int mod | |
98 | 109 | |||
99 | if (!pathname || | 110 | if (!pathname || | |
100 | ( strcmp(pathname, "/dev/dsp") != 0 && | 111 | ( strcmp(pathname, "/dev/dsp") != 0 && | |
101 | + strcmp(pathname, "/dev/sound") != 0 && | 112 | + strcmp(pathname, "/dev/sound") != 0 && | |
102 | + strcmp(pathname, "/dev/audio") != 0 && | 113 | + strcmp(pathname, "/dev/audio") != 0 && | |
103 | strcmp(pathname, "/dev/adsp") != 0 && | 114 | strcmp(pathname, "/dev/adsp") != 0 && | |
104 | strcmp(pathname, "/dev/sndstat") != 0 && | 115 | strcmp(pathname, "/dev/sndstat") != 0 && | |
105 | strcmp(pathname, "/dev/mixer") != 0 )) { | 116 | strcmp(pathname, "/dev/mixer") != 0 )) { | |
106 | @@ -2412,6 +2442,8 @@ int stat(const char *pathname, struct st | 117 | @@ -2412,6 +2446,8 @@ int stat(const char *pathname, struct st | |
107 | if (!pathname || | 118 | if (!pathname || | |
108 | !buf || | 119 | !buf || | |
109 | ( strcmp(pathname, "/dev/dsp") != 0 && | 120 | ( strcmp(pathname, "/dev/dsp") != 0 && | |
110 | + strcmp(pathname, "/dev/sound") != 0 && | 121 | + strcmp(pathname, "/dev/sound") != 0 && | |
111 | + strcmp(pathname, "/dev/audio") != 0 && | 122 | + strcmp(pathname, "/dev/audio") != 0 && | |
112 | strcmp(pathname, "/dev/adsp") != 0 && | 123 | strcmp(pathname, "/dev/adsp") != 0 && | |
113 | strcmp(pathname, "/dev/sndstat") != 0 && | 124 | strcmp(pathname, "/dev/sndstat") != 0 && | |
114 | strcmp(pathname, "/dev/mixer") != 0 )) { | 125 | strcmp(pathname, "/dev/mixer") != 0 )) { | |
115 | @@ -2469,6 +2501,8 @@ int stat64(const char *pathname, struct | 126 | @@ -2469,6 +2505,8 @@ int stat64(const char *pathname, struct | |
116 | if (!pathname || | 127 | if (!pathname || | |
117 | !buf || | 128 | !buf || | |
118 | ( strcmp(pathname, "/dev/dsp") != 0 && | 129 | ( strcmp(pathname, "/dev/dsp") != 0 && | |
119 | + strcmp(pathname, "/dev/sound") != 0 && | 130 | + strcmp(pathname, "/dev/sound") != 0 && | |
120 | + strcmp(pathname, "/dev/audio") != 0 && | 131 | + strcmp(pathname, "/dev/audio") != 0 && | |
121 | strcmp(pathname, "/dev/adsp") != 0 && | 132 | strcmp(pathname, "/dev/adsp") != 0 && | |
122 | strcmp(pathname, "/dev/sndstat") != 0 && | 133 | strcmp(pathname, "/dev/sndstat") != 0 && | |
123 | strcmp(pathname, "/dev/mixer") != 0 )) { | 134 | strcmp(pathname, "/dev/mixer") != 0 )) { | |
124 | @@ -2514,6 +2548,8 @@ int open64(const char *filename, int fla | 135 | @@ -2514,6 +2552,8 @@ int open64(const char *filename, int fla | |
125 | 136 | |||
126 | if (!filename || | 137 | if (!filename || | |
127 | ( strcmp(filename, "/dev/dsp") != 0 && | 138 | ( strcmp(filename, "/dev/dsp") != 0 && | |
128 | + strcmp(filename, "/dev/sound") != 0 && | 139 | + strcmp(filename, "/dev/sound") != 0 && | |
129 | + strcmp(filename, "/dev/audio") != 0 && | 140 | + strcmp(filename, "/dev/audio") != 0 && | |
130 | strcmp(filename, "/dev/adsp") != 0 && | 141 | strcmp(filename, "/dev/adsp") != 0 && | |
131 | strcmp(filename, "/dev/sndstat") != 0 && | 142 | strcmp(filename, "/dev/sndstat") != 0 && | |
132 | strcmp(filename, "/dev/mixer") != 0 )) { | 143 | strcmp(filename, "/dev/mixer") != 0 )) { | |
133 | @@ -2534,6 +2570,8 @@ int __xstat(int ver, const char *pathnam | 144 | @@ -2534,6 +2574,8 @@ int __xstat(int ver, const char *pathnam | |
134 | if (!pathname || | 145 | if (!pathname || | |
135 | !buf || | 146 | !buf || | |
136 | ( strcmp(pathname, "/dev/dsp") != 0 && | 147 | ( strcmp(pathname, "/dev/dsp") != 0 && | |
137 | + strcmp(pathname, "/dev/sound") != 0 && | 148 | + strcmp(pathname, "/dev/sound") != 0 && | |
138 | + strcmp(pathname, "/dev/audio") != 0 && | 149 | + strcmp(pathname, "/dev/audio") != 0 && | |
139 | strcmp(pathname, "/dev/adsp") != 0 && | 150 | strcmp(pathname, "/dev/adsp") != 0 && | |
140 | strcmp(pathname, "/dev/sndstat") != 0 && | 151 | strcmp(pathname, "/dev/sndstat") != 0 && | |
141 | strcmp(pathname, "/dev/mixer") != 0 )) { | 152 | strcmp(pathname, "/dev/mixer") != 0 )) { | |
142 | @@ -2557,6 +2595,8 @@ int __xstat64(int ver, const char *pathn | 153 | @@ -2557,6 +2599,8 @@ int __xstat64(int ver, const char *pathn | |
143 | if (!pathname || | 154 | if (!pathname || | |
144 | !buf || | 155 | !buf || | |
145 | ( strcmp(pathname, "/dev/dsp") != 0 && | 156 | ( strcmp(pathname, "/dev/dsp") != 0 && | |
146 | + strcmp(pathname, "/dev/sound") != 0 && | 157 | + strcmp(pathname, "/dev/sound") != 0 && | |
147 | + strcmp(pathname, "/dev/audio") != 0 && | 158 | + strcmp(pathname, "/dev/audio") != 0 && | |
148 | strcmp(pathname, "/dev/adsp") != 0 && | 159 | strcmp(pathname, "/dev/adsp") != 0 && | |
149 | strcmp(pathname, "/dev/sndstat") != 0 && | 160 | strcmp(pathname, "/dev/sndstat") != 0 && | |
150 | strcmp(pathname, "/dev/mixer") != 0 )) { | 161 | strcmp(pathname, "/dev/mixer") != 0 )) { | |
151 | @@ -2586,6 +2626,8 @@ FILE* fopen(const char *filename, const | 162 | @@ -2586,6 +2630,8 @@ FILE* fopen(const char *filename, const | |
152 | if (!filename || | 163 | if (!filename || | |
153 | !mode || | 164 | !mode || | |
154 | ( strcmp(filename, "/dev/dsp") != 0 && | 165 | ( strcmp(filename, "/dev/dsp") != 0 && | |
155 | + strcmp(filename, "/dev/sound") != 0 && | 166 | + strcmp(filename, "/dev/sound") != 0 && | |
156 | + strcmp(filename, "/dev/audio") != 0 && | 167 | + strcmp(filename, "/dev/audio") != 0 && | |
157 | strcmp(filename, "/dev/adsp") != 0 && | 168 | strcmp(filename, "/dev/adsp") != 0 && | |
158 | strcmp(filename, "/dev/sndstat") != 0 && | 169 | strcmp(filename, "/dev/sndstat") != 0 && | |
159 | strcmp(filename, "/dev/mixer") != 0 )) { | 170 | strcmp(filename, "/dev/mixer") != 0 )) { | |
160 | @@ -2629,6 +2671,8 @@ FILE *fopen64(const char *filename, cons | 171 | @@ -2629,6 +2675,8 @@ FILE *fopen64(const char *filename, cons | |
161 | if (!filename || | 172 | if (!filename || | |
162 | !mode || | 173 | !mode || | |
163 | ( strcmp(filename, "/dev/dsp") != 0 && | 174 | ( strcmp(filename, "/dev/dsp") != 0 && | |
164 | + strcmp(filename, "/dev/sound") != 0 && | 175 | + strcmp(filename, "/dev/sound") != 0 && | |
165 | + strcmp(filename, "/dev/audio") != 0 && | 176 | + strcmp(filename, "/dev/audio") != 0 && | |
166 | strcmp(filename, "/dev/adsp") != 0 && | 177 | strcmp(filename, "/dev/adsp") != 0 && | |
167 | strcmp(filename, "/dev/sndstat") != 0 && | 178 | strcmp(filename, "/dev/sndstat") != 0 && | |
168 | strcmp(filename, "/dev/mixer") != 0 )) { | 179 | strcmp(filename, "/dev/mixer") != 0 )) { |
@@ -1,20 +1,39 @@ | @@ -1,20 +1,39 @@ | |||
1 | $NetBSD: patch-ac,v 1.1.1.1 2008/12/18 14:42:56 jmcneill Exp $ | 1 | $NetBSD: patch-ac,v 1.2 2008/12/23 19:29:29 jmcneill Exp $ | |
2 | 2 | |||
3 | --- src/tests/rtstutter.c.orig 2008-08-19 17:25:05.000000000 -0400 | 3 | --- src/tests/rtstutter.c.orig 2008-08-19 17:25:05.000000000 -0400 | |
4 | +++ src/tests/rtstutter.c | 4 | +++ src/tests/rtstutter.c 2008-12-23 13:25:08.000000000 -0500 | |
5 | @@ -42,6 +42,7 @@ static int msec_lower, msec_upper; | 5 | @@ -42,6 +42,7 @@ static int msec_lower, msec_upper; | |
6 | static void* work(void *p) PA_GCC_NORETURN; | 6 | static void* work(void *p) PA_GCC_NORETURN; | |
7 | 7 | |||
8 | static void* work(void *p) { | 8 | static void* work(void *p) { | |
9 | +#ifdef __linux__ | 9 | +#ifdef __linux__ | |
10 | cpu_set_t mask; | 10 | cpu_set_t mask; | |
11 | struct sched_param param; | 11 | struct sched_param param; | |
12 | 12 | |||
13 | @@ -83,6 +84,7 @@ static void* work(void *p) { | 13 | @@ -83,10 +84,11 @@ static void* work(void *p) { | |
14 | } while (now.tv_sec < end.tv_sec || | 14 | } while (now.tv_sec < end.tv_sec || | |
15 | (now.tv_sec == end.tv_sec && now.tv_nsec < end.tv_nsec)); | 15 | (now.tv_sec == end.tv_sec && now.tv_nsec < end.tv_nsec)); | |
16 | } | 16 | } | |
17 | +#endif | 17 | +#endif | |
18 | } | 18 | } | |
19 | 19 | |||
20 | int main(int argc, char*argv[]) { | 20 | int main(int argc, char*argv[]) { | |
21 | - int n; | |||
22 | + int n, ncpus; | |||
23 | ||||
24 | srand((unsigned) time(NULL)); | |||
25 | ||||
26 | @@ -106,7 +108,12 @@ int main(int argc, char*argv[]) { | |||
27 | ||||
28 | pa_log_notice("Creating random latencies in the range of %ims to %ims.", msec_lower, msec_upper); | |||
29 | ||||
30 | - for (n = 1; n < sysconf(_SC_NPROCESSORS_CONF); n++) { | |||
31 | +#ifdef _SC_NPROCESSORS_CONF | |||
32 | + ncpus = sysconf(_SC_NPROCESSORS_CONF); | |||
33 | +#else | |||
34 | + ncpus = 1; | |||
35 | +#endif | |||
36 | + for (n = 1; n < ncpus; n++) { | |||
37 | pthread_t t; | |||
38 | pa_assert_se(pthread_create(&t, NULL, work, PA_INT_TO_PTR(n)) == 0); | |||
39 | } |
$NetBSD: patch-ak,v 1.1 2008/12/23 19:29:29 jmcneill Exp $
--- src/modules/module-oss.c.orig 2008-12-23 13:12:54.000000000 -0500
+++ src/modules/module-oss.c 2008-12-23 13:28:40.000000000 -0500
@@ -71,6 +71,11 @@
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
+#if defined(__NetBSD__) && !defined(SNDCTL_DSP_GETODELAY)
+#include <sys/audioio.h>
+#include <sys/syscall.h>
+#endif
+
#include "oss-util.h"
#include "module-oss-symdef.h"
@@ -399,13 +404,22 @@ static pa_usec_t io_sink_get_latency(str
if (u->use_getodelay) {
int arg;
-
+#if defined(__NetBSD__) && !defined(SNDCTL_DSP_GETODELAY)
+ struct audio_info info;
+ if (syscall(SYS_ioctl, u->fd, AUDIO_GETBUFINFO, &info) < 0) {
+ pa_log_info("Device doesn't support AUDIO_GETBUFINFO: %s", pa_cstrerror(errno));
+ u->use_getodelay = 0;
+ } else {
+ arg = info.play.seek + info.blocksize / 2;
+ r = pa_bytes_to_usec((size_t) arg, &u->sink->sample_spec);
+ }
+#else
if (ioctl(u->fd, SNDCTL_DSP_GETODELAY, &arg) < 0) {
pa_log_info("Device doesn't support SNDCTL_DSP_GETODELAY: %s", pa_cstrerror(errno));
u->use_getodelay = 0;
} else
r = pa_bytes_to_usec((size_t) arg, &u->sink->sample_spec);
-
+#endif
}
if (!u->use_getodelay && u->use_getospace) {
@@ -1,77 +1,80 @@ | @@ -1,77 +1,80 @@ | |||
1 | $NetBSD: patch-ba,v 1.2 2008/12/23 02:15:27 hasso Exp $ | 1 | $NetBSD: patch-ba,v 1.3 2008/12/23 19:29:29 jmcneill Exp $ | |
2 | 2 | |||
3 | --- configure.ac.orig 2008-10-06 03:39:37 +0300 | 3 | --- configure.ac.orig 2008-10-05 20:39:37.000000000 -0400 | |
4 | +++ configure.ac 2008-12-23 03:11:41 +0200 | 4 | +++ configure.ac 2008-12-23 12:38:28.000000000 -0500 | |
5 | @@ -125,6 +125,16 @@ AC_ARG_ENABLE([atomic-arm-memory-barrier | 5 | @@ -125,7 +125,18 @@ | |
6 | no) ;; | 6 | no) ;; | |
7 | *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;; | 7 | *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;; | |
8 | esac | 8 | esac | |
9 | - ],) | |||
9 | + ],) | 10 | + ],) | |
10 | + | 11 | + | |
11 | +AC_ARG_ENABLE([netbsd-atomic-ops], | 12 | +AC_ARG_ENABLE([netbsd-atomic-ops], | |
12 | + AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]), | 13 | + AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]), | |
13 | + [ | 14 | + [ | |
14 | + case "${enableval}" in | 15 | + case "${enableval}" in | |
15 | + yes) AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS_ENABLED, 1, [Enable NetBSD atomic_ops]) ;; | 16 | + yes) atomic_netbsd_helpers=yes ;; | |
16 | + no) ;; | 17 | + no) atomic_netbsd_helpers=no ;; | |
17 | + *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;; | 18 | + *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;; | |
18 | + esac | 19 | + esac | |
19 | ],) | 20 | + ], | |
21 | + [atomic_netbsd_helpers=auto]) | |||
20 | 22 | |||
21 | AC_MSG_CHECKING([target operating system]) | 23 | AC_MSG_CHECKING([target operating system]) | |
22 | @@ -133,6 +143,10 @@ case $host in | 24 | case $host in | |
25 | @@ -133,6 +144,10 @@ | |||
23 | AC_MSG_RESULT([linux]) | 26 | AC_MSG_RESULT([linux]) | |
24 | pulse_target_os=linux | 27 | pulse_target_os=linux | |
25 | ;; | 28 | ;; | |
26 | + *-*-netbsd*) | 29 | + *-*-netbsd*) | |
27 | + AC_MSG_RESULT([netbsd]) | 30 | + AC_MSG_RESULT([netbsd]) | |
28 | + pulse_target_os=netbsd | 31 | + pulse_target_os=netbsd | |
29 | + ;; | 32 | + ;; | |
30 | *) | 33 | *) | |
31 | AC_MSG_RESULT([unknown]) | 34 | AC_MSG_RESULT([unknown]) | |
32 | pulse_target_os=unknown | 35 | pulse_target_os=unknown | |
33 | @@ -193,7 +207,13 @@ else | 36 | @@ -193,7 +208,13 @@ | |
34 | fi | 37 | fi | |
35 | ;; | 38 | ;; | |
36 | *) | 39 | *) | |
37 | - AC_MSG_RESULT([unknown]) | 40 | - AC_MSG_RESULT([unknown]) | |
38 | + if test "x$pulse_target_os" = "xnetbsd" && test "x$ac_cv_header_sys_atomic_h" != "xno"; then | 41 | + if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then | |
39 | + AC_MSG_RESULT([yes]) | 42 | + AC_MSG_RESULT([yes]) | |
40 | + AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation]) | 43 | + AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation]) | |
41 | + need_libatomic_ops=no | 44 | + need_libatomic_ops=no | |
42 | + else | 45 | + else | |
43 | + AC_MSG_RESULT([unknown]) | 46 | + AC_MSG_RESULT([unknown]) | |
44 | + fi | 47 | + fi | |
45 | ;; | 48 | ;; | |
46 | esac | 49 | esac | |
47 | fi | 50 | fi | |
48 | @@ -263,7 +283,7 @@ AC_HEADER_STDC | 51 | @@ -263,7 +284,7 @@ | |
49 | AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ | 52 | AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ | |
50 | netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \ | 53 | netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \ | |
51 | sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \ | 54 | sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \ | |
52 | - syslog.h sys/dl.h dlfcn.h linux/sockios.h]) | 55 | - syslog.h sys/dl.h dlfcn.h linux/sockios.h]) | |
53 | + sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h]) | 56 | + sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h]) | |
54 | AC_CHECK_HEADERS([netinet/ip.h], [], [], | 57 | AC_CHECK_HEADERS([netinet/ip.h], [], [], | |
55 | [#include <sys/types.h> | 58 | [#include <sys/types.h> | |
56 | #if HAVE_NETINET_IN_H | 59 | #if HAVE_NETINET_IN_H | |
57 | @@ -292,6 +312,9 @@ AC_CHECK_HEADERS([sys/filio.h]) | 60 | @@ -292,6 +313,9 @@ | |
58 | # Windows | 61 | # Windows | |
59 | AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h]) | 62 | AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h]) | |
60 | 63 | |||
61 | +# NetBSD | 64 | +# NetBSD | |
62 | +AC_CHECK_HEADERS([sys/atomic.h]) | 65 | +AC_CHECK_HEADERS([sys/atomic.h]) | |
63 | + | 66 | + | |
64 | # Other | 67 | # Other | |
65 | AC_CHECK_HEADERS([sys/ioctl.h]) | 68 | AC_CHECK_HEADERS([sys/ioctl.h]) | |
66 | AC_CHECK_HEADERS([byteswap.h]) | 69 | AC_CHECK_HEADERS([byteswap.h]) | |
67 | @@ -359,8 +382,8 @@ AC_CHECK_FUNCS([lrintf strtof]) | 70 | @@ -359,8 +383,8 @@ | |
68 | AC_FUNC_FORK | 71 | AC_FUNC_FORK | |
69 | AC_FUNC_GETGROUPS | 72 | AC_FUNC_GETGROUPS | |
70 | AC_FUNC_SELECT_ARGTYPES | 73 | AC_FUNC_SELECT_ARGTYPES | |
71 | -AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r \ | 74 | -AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r \ | |
72 | - getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ | 75 | - getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ | |
73 | +AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \ | 76 | +AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \ | |
74 | + getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ | 77 | + getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ | |
75 | pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \ | 78 | pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \ | |
76 | sigaction sleep sysconf]) | 79 | sigaction sleep sysconf]) | |
77 | AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0]) | 80 | AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0]) |
@@ -1,22 +1,22 @@ | @@ -1,22 +1,22 @@ | |||
1 | $NetBSD: patch-bb,v 1.2 2008/12/20 17:53:51 jmcneill Exp $ | 1 | $NetBSD: patch-bb,v 1.3 2008/12/23 19:29:29 jmcneill Exp $ | |
2 | 2 | |||
3 | --- src/pulsecore/atomic.h.orig 2008-09-03 17:13:44.000000000 -0400 | 3 | --- src/pulsecore/atomic.h.orig 2008-09-03 17:13:44.000000000 -0400 | |
4 | +++ src/pulsecore/atomic.h 2008-12-20 12:35:13.000000000 -0500 | 4 | +++ src/pulsecore/atomic.h 2008-12-23 14:13:35.000000000 -0500 | |
5 | @@ -107,6 +107,85 @@ static inline pa_bool_t pa_atomic_ptr_cm | 5 | @@ -107,6 +107,85 @@ static inline pa_bool_t pa_atomic_ptr_cm | |
6 | return __sync_bool_compare_and_swap(&a->value, (long) old_p, (long) new_p); | 6 | return __sync_bool_compare_and_swap(&a->value, (long) old_p, (long) new_p); | |
7 | } | 7 | } | |
8 | 8 | |||
9 | +#elif defined(NETBSD_ATOMIC_OPS) | 9 | +#elif defined(__NetBSD__) && defined(HAVE_SYS_ATOMIC_H) | |
10 | + | 10 | + | |
11 | +/* NetBSD 5.0+ atomic_ops(3) implementation */ | 11 | +/* NetBSD 5.0+ atomic_ops(3) implementation */ | |
12 | + | 12 | + | |
13 | +#include <sys/atomic.h> | 13 | +#include <sys/atomic.h> | |
14 | + | 14 | + | |
15 | +typedef struct pa_atomic { | 15 | +typedef struct pa_atomic { | |
16 | + volatile unsigned int value; | 16 | + volatile unsigned int value; | |
17 | +} pa_atomic_t; | 17 | +} pa_atomic_t; | |
18 | + | 18 | + | |
19 | +#define PA_ATOMIC_INIT(v) { .value = (unsigned int) (v) } | 19 | +#define PA_ATOMIC_INIT(v) { .value = (unsigned int) (v) } | |
20 | + | 20 | + | |
21 | +static inline int pa_atomic_load(const pa_atomic_t *a) { | 21 | +static inline int pa_atomic_load(const pa_atomic_t *a) { | |
22 | + membar_sync(); | 22 | + membar_sync(); |