about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/db/clang-5.3.patch
blob: 823a71d6532f5ccfcb3226c7ed707cc2276777cf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
diff --git a/src/dbinc/atomic.h b/src/dbinc/atomic.h
index 6a858f7..9f338dc 100644
--- a/src/dbinc/atomic.h
+++ b/src/dbinc/atomic.h
@@ -70,7 +70,7 @@ typedef struct {
  * These have no memory barriers; the caller must include them when necessary.
  */
 #define	atomic_read(p)		((p)->value)
-#define	atomic_init(p, val)	((p)->value = (val))
+#define	atomic_init_db(p, val)	((p)->value = (val))
 
 #ifdef HAVE_ATOMIC_SUPPORT
 
@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val;
 #define	atomic_inc(env, p)	__atomic_inc(p)
 #define	atomic_dec(env, p)	__atomic_dec(p)
 #define	atomic_compare_exchange(env, p, o, n)	\
-	__atomic_compare_exchange((p), (o), (n))
+	__atomic_compare_exchange_int((p), (o), (n))
 static inline int __atomic_inc(db_atomic_t *p)
 {
 	int	temp;
@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p)
  * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
  * which configure could be changed to use.
  */
-static inline int __atomic_compare_exchange(
+static inline int __atomic_compare_exchange_int(
 	db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
 {
 	atomic_value_t was;
@@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange(
 #define	atomic_dec(env, p)	(--(p)->value)
 #define	atomic_compare_exchange(env, p, oldval, newval)		\
 	(DB_ASSERT(env, atomic_read(p) == (oldval)),		\
-	atomic_init(p, (newval)), 1)
+	atomic_init_db(p, (newval)), 1)
 #else
 #define atomic_inc(env, p)	__atomic_inc(env, p)
 #define atomic_dec(env, p)	__atomic_dec(env, p)
diff --git a/src/mp/mp_fget.c b/src/mp/mp_fget.c
index 16de695..d0dcc29 100644
--- a/src/mp/mp_fget.c
+++ b/src/mp/mp_fget.c
@@ -649,7 +649,7 @@ alloc:		/* Allocate a new buffer header and data space. */
 
 		/* Initialize enough so we can call __memp_bhfree. */
 		alloc_bhp->flags = 0;
-		atomic_init(&alloc_bhp->ref, 1);
+		atomic_init_db(&alloc_bhp->ref, 1);
 #ifdef DIAGNOSTIC
 		if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) {
 			__db_errx(env, DB_STR("3025",
@@ -955,7 +955,7 @@ alloc:		/* Allocate a new buffer header and data space. */
 			MVCC_MPROTECT(bhp->buf, mfp->pagesize,
 			    PROT_READ);
 
-		atomic_init(&alloc_bhp->ref, 1);
+		atomic_init_db(&alloc_bhp->ref, 1);
 		MUTEX_LOCK(env, alloc_bhp->mtx_buf);
 		alloc_bhp->priority = bhp->priority;
 		alloc_bhp->pgno = bhp->pgno;
diff --git a/src/mp/mp_mvcc.c b/src/mp/mp_mvcc.c
index 770bad8..e28cce0 100644
--- a/src/mp/mp_mvcc.c
+++ b/src/mp/mp_mvcc.c
@@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp)
 #else
 	memcpy(frozen_bhp, bhp, SSZA(BH, buf));
 #endif
-	atomic_init(&frozen_bhp->ref, 0);
+	atomic_init_db(&frozen_bhp->ref, 0);
 	if (mutex != MUTEX_INVALID)
 		frozen_bhp->mtx_buf = mutex;
 	else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH,
@@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp)
 #endif
 		alloc_bhp->mtx_buf = mutex;
 		MUTEX_LOCK(env, alloc_bhp->mtx_buf);
-		atomic_init(&alloc_bhp->ref, 1);
+		atomic_init_db(&alloc_bhp->ref, 1);
 		F_CLR(alloc_bhp, BH_FROZEN);
 	}
 
diff --git a/src/mp/mp_region.c b/src/mp/mp_region.c
index 4952030..47645f8 100644
--- a/src/mp/mp_region.c
+++ b/src/mp/mp_region.c
@@ -245,7 +245,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg)
 			     MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0)
 				return (ret);
 			SH_TAILQ_INIT(&htab[i].hash_bucket);
-			atomic_init(&htab[i].hash_page_dirty, 0);
+			atomic_init_db(&htab[i].hash_page_dirty, 0);
 		}
 
 		/*
@@ -302,7 +302,7 @@ no_prealloc:
 		} else
 			hp->mtx_hash = mtx_base + (i % dbenv->mp_mtxcount);
 		SH_TAILQ_INIT(&hp->hash_bucket);
-		atomic_init(&hp->hash_page_dirty, 0);
+		atomic_init_db(&hp->hash_page_dirty, 0);
 #ifdef HAVE_STATISTICS
 		hp->hash_io_wait = 0;
 		hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0;
diff --git a/src/mutex/mut_method.c b/src/mutex/mut_method.c
index 09353b0..177353c 100644
--- a/src/mutex/mut_method.c
+++ b/src/mutex/mut_method.c
@@ -474,7 +474,7 @@ atomic_compare_exchange(env, v, oldval, newval)
 	MUTEX_LOCK(env, mtx);
 	ret = atomic_read(v) == oldval;
 	if (ret)
-		atomic_init(v, newval);
+		atomic_init_db(v, newval);
 	MUTEX_UNLOCK(env, mtx);
 
 	return (ret);
diff --git a/src/mutex/mut_tas.c b/src/mutex/mut_tas.c
index 106b161..fc4de9d 100644
--- a/src/mutex/mut_tas.c
+++ b/src/mutex/mut_tas.c
@@ -47,7 +47,7 @@ __db_tas_mutex_init(env, mutex, flags)
 
 #ifdef HAVE_SHARED_LATCHES
 	if (F_ISSET(mutexp, DB_MUTEX_SHARED))
-		atomic_init(&mutexp->sharecount, 0);
+		atomic_init_db(&mutexp->sharecount, 0);
 	else
 #endif
 	if (MUTEX_INIT(&mutexp->tas)) {
@@ -536,7 +536,7 @@ __db_tas_mutex_unlock(env, mutex)
 			F_CLR(mutexp, DB_MUTEX_LOCKED);
 			/* Flush flag update before zeroing count */
 			MEMBAR_EXIT();
-			atomic_init(&mutexp->sharecount, 0);
+			atomic_init_db(&mutexp->sharecount, 0);
 		} else {
 			DB_ASSERT(env, sharecount > 0);
 			MEMBAR_EXIT();
diff -ur a/dist/aclocal/clock.m4 b/dist/aclocal/clock.m4
--- a/dist/aclocal/clock.m4	1969-12-31 19:00:01.000000000 -0500
+++ b/dist/aclocal/clock.m4	2023-06-05 19:14:02.007080500 -0400
@@ -21,6 +21,7 @@
 AC_CACHE_CHECK([for clock_gettime monotonic clock], db_cv_clock_monotonic, [
 AC_TRY_RUN([
 #include <sys/time.h>
+int
 main() {
 	struct timespec t;
 	return (clock_gettime(CLOCK_MONOTONIC, &t) != 0);
diff -ur a/dist/aclocal/mmap.m4 b/dist/aclocal/mmap.m4
--- a/dist/aclocal/mmap.m4	1969-12-31 19:00:01.000000000 -0500
+++ b/dist/aclocal/mmap.m4	2023-06-05 19:14:02.007323624 -0400
@@ -29,6 +29,8 @@
      * system to system.
      */
     #include <stdio.h>
+    #include <stdlib.h>
+    #include <unistd.h>
     #include <string.h>
     #include <sys/types.h>
     #include <sys/stat.h>
@@ -42,12 +44,13 @@
     #define MAP_FAILED (-1)
     #endif

-    int catch_sig(sig)
+    void catch_sig(sig)
 	    int sig;
     {
 	    exit(1);
     }

+    int
     main() {
 	    const char *underlying;
 	    unsigned gapsize;
@@ -88,8 +91,8 @@
 		    return (4);
 	    }

-	    (void) signal(SIGSEGV, catch_sig);
-	    (void) signal(SIGBUS, catch_sig);
+	    (void) signal(SIGSEGV, &catch_sig);
+	    (void) signal(SIGBUS, &catch_sig);

 	    for (i = sizeof(buf); i < total_size; i += gapsize)
 		    base[i] = 'A';
diff -ur a/dist/aclocal/mutex.m4 b/dist/aclocal/mutex.m4
--- a/dist/aclocal/mutex.m4	1969-12-31 19:00:01.000000000 -0500
+++ b/dist/aclocal/mutex.m4	2023-06-05 19:14:47.214158196 -0400
@@ -5,6 +5,7 @@
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
+int
 main() {
 	pthread_cond_t cond;
 	pthread_mutex_t mutex;
@@ -49,6 +50,7 @@
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
+int
 main() {
 	pthread_cond_t cond;
 	pthread_mutex_t mutex;
@@ -89,6 +91,7 @@
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
+int
 main() {
 	pthread_cond_t cond;
 	pthread_condattr_t condattr;
@@ -110,6 +113,7 @@
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
+int
 main() {
 	pthread_rwlock_t rwlock;
 	pthread_rwlockattr_t rwlockattr;
diff -ur a/dist/aclocal/sequence.m4 b/dist/aclocal/sequence.m4
--- a/dist/aclocal/sequence.m4	1969-12-31 19:00:01.000000000 -0500
+++ b/dist/aclocal/sequence.m4	2023-06-05 19:14:02.007869956 -0400
@@ -43,6 +43,9 @@
 	# test, which won't test for the appropriate printf format strings.
 	if test "$db_cv_build_sequence" = "yes"; then
 		AC_TRY_RUN([
+		#include <string.h>
+		#include <stdio.h>
+		int
 		main() {
 			$db_cv_seq_type l;
 			unsigned $db_cv_seq_type u;
@@ -59,7 +62,9 @@
				return (1);
 			return (0);
 		}],, [db_cv_build_sequence="no"],
-		AC_TRY_LINK(,[
+		AC_TRY_LINK([
+			#include <string.h>
+			#include <stdio.h>],[
 			$db_cv_seq_type l;
 			unsigned $db_cv_seq_type u;
 			char buf@<:@100@:>@;