1
#! /bin/sh /usr/share/dpatch/dpatch-run
2
## 18_kbsd_nspr.dpatch by Petr Salinger <Petr.Salinger@seznam.cz>
4
## All lines beginning with `## DP:' are a description of the patch.
5
## DP: GNU/kFreeBSD support for nspr. bz#261649, bz#355999
9
--- nspr/mozilla/nsprpub/config/nsinstall.c
10
+++ nspr/mozilla/nsprpub/config/nsinstall.c
16
+#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
20
--- nspr/mozilla/nsprpub/pr/include/md/_linux.cfg
21
+++ nspr/mozilla/nsprpub/pr/include/md/_linux.cfg
24
* ***** END LICENSE BLOCK ***** */
27
+ * This file is used by not only Linux but also other glibc systems
28
+ * such as GNU/Hurd and GNU/k*BSD.
31
#ifndef nspr_cpucfg___
32
#define nspr_cpucfg___
39
+#if !defined(LINUX) && defined(__linux__)
43
+#ifdef __FreeBSD_kernel__
44
+#define PR_AF_INET6 28 /* same as AF_INET6 */
46
#define PR_AF_INET6 10 /* same as AF_INET6 */
51
--- nspr/mozilla/nsprpub/pr/include/md/_linux.h
52
+++ nspr/mozilla/nsprpub/pr/include/md/_linux.h
57
+ * This file is used by not only Linux but also other glibc systems
58
+ * such as GNU/Hurd and GNU/k*BSD.
61
+#ifdef __FreeBSD_kernel__
62
+#define _PR_HAVE_SOCKADDR_LEN
66
* Internal configuration macros
69
--- nspr/mozilla/nsprpub/pr/include/md/_pth.h
70
+++ nspr/mozilla/nsprpub/pr/include/md/_pth.h
72
(!memcmp(&(t), &pt_zero_tid, sizeof(pthread_t)))
73
#define _PT_PTHREAD_COPY_THR_HANDLE(st, dt) (dt) = (st)
74
#elif defined(IRIX) || defined(OSF1) || defined(AIX) || defined(SOLARIS) \
75
- || defined(HPUX) || defined(LINUX) || defined(FREEBSD) \
76
+ || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
77
+ || defined(HPUX) || defined(FREEBSD) \
78
|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
79
|| defined(VMS) || defined(NTO) || defined(DARWIN) \
80
|| defined(UNIXWARE) || defined(RISCOS)
82
+/* Hurd pthreads don't have an invalid value for pthread_t. -- rmh */
83
+#error Using Hurd pthreads
85
#define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t) (t) = 0
86
#define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t) (t) == 0
87
#define _PT_PTHREAD_COPY_THR_HANDLE(st, dt) (dt) = (st)
90
* These platforms don't have sigtimedwait()
92
-#if (defined(AIX) && !defined(AIX4_3_PLUS)) || defined(LINUX) \
93
+#if (defined(AIX) && !defined(AIX4_3_PLUS)) \
94
+ || defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
95
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
96
|| defined(BSDI) || defined(VMS) || defined(UNIXWARE) \
99
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
100
#endif /* defined(_PR_DCETHREADS) */
102
-#elif defined(LINUX) || defined(FREEBSD)
103
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
104
+ || defined(FREEBSD)
105
#define PT_PRIO_MIN sched_get_priority_min(SCHED_OTHER)
106
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
109
onemillisec.tv_nsec = 1000000L; \
110
nanosleep(&onemillisec,NULL); \
112
-#elif defined(HPUX) || defined(LINUX) || defined(SOLARIS) \
113
+#elif defined(HPUX) || defined(SOLARIS) \
114
+ || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
115
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
116
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
117
|| defined(UNIXWARE) || defined(RISCOS)
118
--- nspr/mozilla/nsprpub/pr/include/md/_unixos.h
119
+++ nspr/mozilla/nsprpub/pr/include/md/_unixos.h
121
* Linux: FD_SETSIZE is defined in /usr/include/sys/select.h and should
124
-#if !defined(LINUX) && !defined(DARWIN) && !defined(NEXTSTEP)
125
+#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
126
+ && !defined(DARWIN) && !defined(NEXTSTEP)
128
#define FD_SETSIZE 4096
130
--- nspr/mozilla/nsprpub/pr/include/md/prosdep.h
131
+++ nspr/mozilla/nsprpub/pr/include/md/prosdep.h
134
#include "md/_irix.h"
136
-#elif defined(LINUX)
137
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
138
#include "md/_linux.h"
141
--- nspr/mozilla/nsprpub/pr/src/linking/prlink.c
142
+++ nspr/mozilla/nsprpub/pr/src/linking/prlink.c
143
@@ -1374,7 +1374,8 @@
145
PR_GetLibraryFilePathname(const char *name, PRFuncPtr addr)
147
-#if defined(SOLARIS) || defined(LINUX) || defined(FREEBSD)
148
+#if defined(SOLARIS) || defined(FREEBSD) \
149
+ || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
153
--- nspr/mozilla/nsprpub/pr/src/md/prosdep.c
154
+++ nspr/mozilla/nsprpub/pr/src/md/prosdep.c
159
-#if defined SUNOS4 || defined LINUX || defined BSDI || defined AIX \
160
+#if defined SUNOS4 || defined BSDI || defined AIX \
161
+ || defined LINUX || defined __GNU__ || defined __GLIBC__ \
162
|| defined FREEBSD || defined NETBSD || defined OPENBSD \
163
|| defined DARWIN || defined NEXTSTEP
164
_pr_pageSize = getpagesize();
165
--- nspr/mozilla/nsprpub/pr/src/md/unix/unix.c
166
+++ nspr/mozilla/nsprpub/pr/src/md/unix/unix.c
168
* PRInt32* pointer to a _PRSockLen_t* pointer.
170
#if defined(HAVE_SOCKLEN_T) \
171
- || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
172
+ || (defined(__GLIBC__) && __GLIBC__ >= 2)
173
#define _PRSockLen_t socklen_t
174
#elif defined(IRIX) || defined(HPUX) || defined(OSF1) || defined(SOLARIS) \
175
|| defined(AIX4_1) || defined(LINUX) || defined(SONY) \
176
--- nspr/mozilla/nsprpub/pr/src/md/unix/uxproces.c
177
+++ nspr/mozilla/nsprpub/pr/src/md/unix/uxproces.c
179
* that can share the virtual address space and file descriptors.
181
#if (defined(IRIX) && !defined(_PR_PTHREADS)) \
182
- || (defined(LINUX) && defined(_PR_PTHREADS))
183
+ || ((defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)) \
184
+ && defined(_PR_PTHREADS))
185
#define _PR_SHARE_CLONES
191
#if defined(_PR_GLOBAL_THREADS_ONLY) \
192
- || (defined(_PR_PTHREADS) && !defined(LINUX))
193
+ || (defined(_PR_PTHREADS) \
194
+ && !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__))
195
#define _PR_NATIVE_THREADS
198
--- nspr/mozilla/nsprpub/pr/src/md/unix/uxrng.c
199
+++ nspr/mozilla/nsprpub/pr/src/md/unix/uxrng.c
204
-#elif (defined(LINUX) || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD))
205
+#elif (defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD_kernel__) \
206
+ || defined(NETBSD) || defined(__NetBSD_kernel__) || defined(OPENBSD))
207
#include <sys/types.h>
208
#include <sys/stat.h>
210
--- nspr/mozilla/nsprpub/pr/src/misc/prnetdb.c
211
+++ nspr/mozilla/nsprpub/pr/src/misc/prnetdb.c
213
#define _PR_HAVE_5_ARG_GETPROTO_R
216
-#if (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
217
+#if (defined(__GLIBC__) && __GLIBC__ >= 2)
218
#define _PR_HAVE_GETPROTO_R
219
#define _PR_HAVE_5_ARG_GETPROTO_R
221
--- nspr/mozilla/nsprpub/pr/src/pthreads/ptio.c
222
+++ nspr/mozilla/nsprpub/pr/src/pthreads/ptio.c
224
#define _PRSelectFdSetArg_t void *
225
#elif defined(IRIX) || (defined(AIX) && !defined(AIX4_1)) \
226
|| defined(OSF1) || defined(SOLARIS) \
227
- || defined(HPUX10_30) || defined(HPUX11) || defined(LINUX) \
228
+ || defined(HPUX10_30) || defined(HPUX11) \
229
+ || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
230
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
231
|| defined(BSDI) || defined(VMS) || defined(NTO) || defined(DARWIN) \
232
|| defined(UNIXWARE) || defined(RISCOS)
234
* most current systems.
236
#if defined(HAVE_SOCKLEN_T) \
237
- || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
238
+ || (defined(__GLIBC__) && __GLIBC__ >= 2)
239
typedef socklen_t pt_SockLen;
240
#elif (defined(AIX) && !defined(AIX4_1)) \
242
@@ -3230,7 +3231,8 @@
245
#if defined(HPUX) || defined(OSF1) || defined(SOLARIS) || defined (IRIX) \
246
- || defined(AIX) || defined(LINUX) || defined(FREEBSD) || defined(NETBSD) \
247
+ || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
248
+ || defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
249
|| defined(OPENBSD) || defined(BSDI) || defined(VMS) || defined(NTO) \
250
|| defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS)
251
#define _PR_FCNTL_FLAGS O_NONBLOCK
252
@@ -4727,7 +4729,8 @@
254
#include <sys/types.h>
255
#include <sys/time.h>
256
-#if !defined(SUNOS4) && !defined(HPUX) && !defined(LINUX)
257
+#if !defined(SUNOS4) && !defined(HPUX) \
258
+ && !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__)
259
#include <sys/select.h>
262
--- nspr/mozilla/nsprpub/pr/tests/Makefile.in
263
+++ nspr/mozilla/nsprpub/pr/tests/Makefile.in
264
@@ -376,14 +376,10 @@
265
EXTRA_LIBS = -lsocket -lnsl -lgen -lresolv
268
-ifeq ($(OS_ARCH), Linux)
269
- ifeq ($(OS_RELEASE), 1.2)
272
- LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
273
- ifeq ($(USE_PTHREADS),1)
274
- EXTRA_LIBS = -lpthread
276
+ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
277
+ LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
278
+ ifeq ($(USE_PTHREADS),1)
279
+ EXTRA_LIBS = -lpthread
283
--- nspr/mozilla/nsprpub/configure.in
284
+++ nspr/mozilla/nsprpub/configure.in
285
@@ -1370,7 +1370,7 @@
290
+*-linux*|*-gnu*|*-k*bsd*-gnu)
291
if test -z "$USE_NSPR_THREADS"; then
294
@@ -1381,7 +1381,11 @@
296
AC_DEFINE(_GNU_SOURCE)
297
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
299
+ case "${target_os}" in
304
CFLAGS="$CFLAGS -Wall"
305
CXXFLAGS="$CXXFLAGS -Wall"
306
MDCPUCFG_H=_linux.cfg
307
@@ -2456,7 +2460,7 @@
308
_PTHREAD_LDFLAGS=-pthread
312
+ *-linux*|*-gnu*|*-k*bsd*-gnu)
313
AC_DEFINE(_REENTRANT)
316
@@ -2540,7 +2544,7 @@
321
+*-linux*|*-gnu*|*-k*bsd*-gnu)
322
if test -n "$USE_NSPR_THREADS"; then
323
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)