[7.2f]
[platform/upstream/libatomic_ops.git] / ChangeLog
1 [7.2f]
2
3 2014-05-02  Ivan Maidanski <ivmai@mail.ru>
4
5         * README: Bump version to 7.2f (rev. F).
6
7 2014-05-02  Ivan Maidanski <ivmai@mail.ru>
8
9         * configure: Regenerate (by autoreconf -vif using autoconf-2.69,
10         automake-1.14.1 and libtool-2.4.2.418).
11         * INSTALL: Likewise.
12         * Makefile.in: Likewise.
13         * aclocal.m4: Likewise.
14         * config.guess: Likewise.
15         * config.sub: Likewise.
16         * doc/Makefile.in: Likewise.
17         * missing: Likewise.
18         * src/Makefile.in: Likewise.
19         * src/atomic_ops/Makefile.in: Likewise.
20         * src/atomic_ops/sysdeps/Makefile.in: Likewise.
21         * src/config.h.in: Likewise.
22         * test-driver: Likewise.
23         * tests/Makefile.in: Likewise.
24
25 2014-03-28  Jan-Erik Rediger <badboy@archlinux.us>
26
27         * doc/README.txt: Remove redundant "an" article (fix typo).
28
29 [7.2e]
30
31 2013-11-10  Ivan Maidanski <ivmai@mail.ru>
32
33         * README: Bump version to 7.2e (rev. E).
34
35 2013-08-31  Ivan Maidanski <ivmai@mail.ru>
36
37         * configure: Regenerate (by autoreconf -vif using autoconf-2.69,
38         automake-1.13.4 and libtool-2.4.2).
39         * INSTALL: Likewise.
40         * Makefile.in: Likewise.
41         * aclocal.m4: Likewise.
42         * compile: Likewise.
43         * config.guess: Likewise.
44         * config.sub: Likewise.
45         * depcomp: Likewise.
46         * doc/Makefile.in: Likewise.
47         * install-sh: Likewise.
48         * missing: Likewise.
49         * mkinstalldirs: Likewise.
50         * src/Makefile.in: Likewise.
51         * src/atomic_ops/Makefile.in: Likewise.
52         * src/atomic_ops/sysdeps/Makefile.in: Likewise.
53         * tests/Makefile.in: Likewise.
54         * test-driver: New generated file.
55
56 2013-08-18  Ivan Maidanski <ivmai@mail.ru>
57
58         * aclocal.m4: Regenerate (by autoreconf -vif).
59
60 2013-08-17  Ivan Maidanski <ivmai@mail.ru>
61
62         * src/atomic_ops/sysdeps/gcc/arm.h
63         (AO_compare_double_and_swap_double): Do not define for
64         pre-Clang3.3 (since the latter does not allocate register pairs for
65         LDREXD/STREXD instructions properly); add comment.
66
67 2013-08-17  Ivan Maidanski <ivmai@mail.ru>
68
69         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_double_and_swap_double):
70         Swap assembly code operands ("new_val" and "addr") to prevent
71         Clang3.3 warning about operand truncation.
72
73 2013-08-17  Ivan Maidanski <ivmai@mail.ru>
74
75         * src/atomic_ops/sysdeps/gcc/arm.h
76         (AO_compare_double_and_swap_double): Specify that LDREXD and STREXD use
77         2 adjacent registers (thus preventing Clang3.3 from register allocation
78         failures leading to "registers may not be the same" or
79         "even register required" GAS errors).
80
81 2013-07-30  Ivan Maidanski <ivmai@mail.ru>
82
83         * src/atomic_ops/generalize.h: Fix a typo in comment
84         ("acquire").
85
86 2013-04-03  Manuel Serrano <Manuel.Serrano@inria.fr>
87
88         * configure.ac (AM_CONFIG_HEADER): Replace obsolete macro with with
89         AC_CONFIG_HEADERS one.
90
91 2013-03-29  Ivan Maidanski <ivmai@mail.ru>
92
93         * src/atomic_ops/generalize-small.template (AO_XSIZE_fetch_and_add):
94         Do not use AO_EXPECT_FALSE (since defined only in v7.3+).
95         * src/atomic_ops/generalize-small.h: Regenerate.
96
97 2013-03-29  Ivan Maidanski <ivmai@mail.ru>
98
99         * src/atomic_ops/sysdeps/sunc/x86.h (AO_fetch_and_add_full,
100         AO_char_fetch_and_add_full, AO_short_fetch_and_add_full, AO_or_full,
101         AO_test_and_set_full,
102         AO_compare_and_swap_full): Use "+m" asm constraint for *addr instead
103         of "=m" (because the value pointed by addr is read and written by the
104         code).
105
106 2013-03-13  Ivan Maidanski <ivmai@mail.ru>
107
108         * src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Use "+m"
109         asm constraint for *addr instead of "=m" (because the value pointed by
110         addr is read and written by the code).
111
112 2013-03-12  Ivan Maidanski <ivmai@mail.ru>
113
114         * src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap): Use "+m"
115         asm constraint for *addr instead of "+R" (the letter is unsupported
116         by clang3.1 resulting in "invalid output constraint in asm" error).
117
118 2013-02-14  Ivan Maidanski <ivmai@mail.ru>
119
120         * src/atomic_ops/sysdeps/gcc/arm.h: Do not include read_ordered.h
121         (because load_acquire should contain a DMB instruction in a multi-core
122         case, new load_acquire/read primitives implementation is generalized
123         using nop_full/read which either contain a DMB instruction, or is just
124         a compiler barrier for uniprocessor).
125         * src/atomic_ops/sysdeps/armcc/arm_v6.h: Likewise.
126         * src/atomic_ops/sysdeps/msftc/arm.h: Likewise.
127
128 2013-01-15  Ivan Maidanski <ivmai@mail.ru>
129
130         * doc/README.txt (_acquire_read): Add information about memory
131         barrier (similar as in atomic_ops.h).
132         * doc/README.txt (_release_read): Remove information about
133         non-existing barrier.
134
135 2013-01-14  Ivan Maidanski <ivmai@mail.ru>
136
137         * src/atomic_ops/sysdeps/ao_t_is_int.h: Fix a typo in comment.
138
139 2013-01-13  Ivan Maidanski <ivmai@mail.ru>
140
141         * src/atomic_ops/sysdeps/ao_t_is_int.h
142         (AO_int_load_acquire, AO_int_fetch_and_add_full,
143         AO_int_fetch_and_add1_acquire, AO_int_fetch_and_add1_release,
144         AO_int_fetch_and_sub1_acquire, AO_int_fetch_and_sub1_release): Cast
145         result to unsigned int instead of signed int.
146
147 2013-01-13  Ivan Maidanski <ivmai@mail.ru>
148
149         * src/atomic_ops/sysdeps/gcc/s390.h: Move include of
150         ordered_except_wr.h down to be after all_aligned_atomic_load_store.h
151         inclusion (since the latter defines AO_X_load/store primitives used by
152         the former header).
153
154 2013-01-13  Ivan Maidanski <ivmai@mail.ru>
155
156         * src/atomic_ops/sysdeps/msftc/arm.h: Fix a typo in comment (about
157         SWP).
158
159 2013-01-07  Ivan Maidanski <ivmai@mail.ru>
160
161         * src/atomic_ops/sysdeps/read_ordered.h (AO_char_load_read,
162         AO_short_load_read, AO_int_load_read): Change return type (and the
163         type of "result" local variable) from AO_t to the type matching the
164         name of the function (i.e., unsigned char/short/int, respectively).
165
166 2013-01-06  Ivan Maidanski <ivmai@mail.ru>
167
168         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Insert
169         AO_compiler_barrier for AO_UNIPROCESSOR case.
170         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Likewise.
171         * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full): Likewise.
172         * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full): Refine comment.
173
174 2013-01-05  Ivan Maidanski <ivmai@mail.ru>
175
176         * src/atomic_ops/Makefile.in: Regenerate (by autoreconf -vif).
177
178 2013-01-04  Ivan Maidanski <ivmai@mail.ru>
179
180         * src/atomic_ops/Makefile.am (BUILT_SOURCES): Define to force
181         regeneration of generalize-small.h (if the corresponding
182         source template is changed) before compilation of .c files (that use
183         atomic_ops.h).
184
185 2013-01-02  Ivan Maidanski <ivmai@mail.ru>
186
187         * src/atomic_ops/generalize-small.template (AO_XSIZE_fetch_and_add):
188         Add missed definition based on CAS.
189         * src/atomic_ops/generalize-small.h: Regenerate.
190
191 2013-01-02  Ivan Maidanski <ivmai@mail.ru>
192
193         * src/atomic_ops/generalize-small.template (AO_XSIZE_load): Move
194         definition (which is based on AO_XSIZE_load_acquire) down to be after
195         AO_XSIZE_load_acquire definition.
196         * src/atomic_ops/generalize-small.template (AO_XSIZE_store): Move
197         definition (which is based on AO_XSIZE_store_release) down to be after
198         AO_XSIZE_store_release definition.
199         * src/atomic_ops/generalize-small.h : Regenerate.
200
201 2012-10-09  Ivan Maidanski <ivmai@mail.ru>
202
203         * tests/test_stack.c (run_one_test): Change type of "index" local
204         variable from long to int to match printf format specifier (when
205         VERBOSE defined); cast from "arg" pointer to integer via size_t (to
206         avoid 64-bit compiler warning).
207
208 2012-10-08  Ivan Maidanski <ivmai@mail.ru>
209
210         * src/atomic_ops/sysdeps/gcc/x86.h (AO_double_compare_and_swap_full):
211         New function (only if __x86_64__) implemented using GCC built-in
212         __sync CAS primitive available for x32.
213         * src/atomic_ops/sysdeps/gcc/x86.h
214         (AO_HAVE_double_compare_and_swap_full): New macro (for x32 only).
215         * src/atomic_ops/sysdeps/gcc/x86.h
216         (AO_compare_double_and_swap_double_full): Implement using
217         double_compare_and_swap_full instead of cmpxchg8b for x32 (since
218         x86_64 has cmpxchg and cmpxchg16b but not cmpxchg8b).
219
220 2012-10-05  Ivan Maidanski <ivmai@mail.ru>
221
222         * src/atomic_ops.h: Fix typos in comments (update generalize.h
223         filename).
224
225 2012-10-03  Ivan Maidanski <ivmai@mail.ru>
226
227         * src/atomic_ops.c (AO_pause): Fix millis value (passed to Win32
228         Sleep) for the case of 'n' argument in range between 12 and 21,
229         inclusive if AO_USE_WIN32_PTHREADS (sleep for 1 ms in this case).
230         * src/atomic_ops_stack.c (AO_pause): Evaluate 'msecs' value using the
231         same algorithm as in atomic_ops.c (Win32 only).
232
233 2012-10-03  Ivan Maidanski <ivmai@mail.ru>
234
235         * src/atomic_ops_stack.c (dummy): Define as static (to make symbol
236         without AO_ prefix visible only within this file); initialize to 1
237         (same as in atomic_ops.c, so that AO_spin would never really alter
238         its value).
239
240 2012-10-02  Ivan Maidanski <ivmai@mail.ru>
241
242         * src/atomic_ops.h: Fix 'load' primitive name in comment (replace
243         AO_load_release_read with AO_load_acquire_read).
244
245 2012-10-02  Ivan Maidanski <ivmai@mail.ru>
246
247         * src/atomic_ops/sysdeps/emul_cas.h
248         (AO_compare_double_and_swap_double_full): Test (define if)
249         AO_HAVE_compare_double_and_swap_double_full macro instead of
250         AO_HAVE_compare_double_and_swap_double.
251
252 2012-10-01  Ivan Maidanski <ivmai@mail.ru>
253
254         * src/atomic_ops/sysdeps/standard_ao_double_t.h (double_ptr_storage):
255         Define as "unsigned long long" instead of __m128 for gcc/x32 (i.e.,
256         ILP32 on x86_64); update and reformat comment.
257
258 2012-09-19  Ivan Maidanski <ivmai@mail.ru>
259
260         * configure: Regenerate (by autoreconf -vif using autoconf-2.68,
261         automake-1.11.3 and libtool-2.4.2).
262         * INSTALL: Likewise.
263         * Makefile.in: Likewise.
264         * aclocal.m4: Likewise.
265         * compile: Likewise.
266         * config.guess: Likewise.
267         * config.sub: Likewise.
268         * depcomp: Likewise.
269         * doc/Makefile.in: Likewise.
270         * install-sh: Likewise.
271         * missing: Likewise.
272         * src/Makefile.in: Likewise.
273         * src/atomic_ops/Makefile.in: Likewise.
274         * src/atomic_ops/sysdeps/Makefile.in: Likewise.
275         * tests/Makefile.in: Likewise.
276
277 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
278
279         * src/atomic_ops.h: Include gcc/x86.h instead of gcc/x86_64.h if
280         gcc/x32 (i.e., GCC (or Intel compiler), __x86_64__ is defined, and
281         __ILP32__ is defined) to have AO_compare_double_and_swap_double_full
282         defined properly (based on cmpxchg8b); explicitly define
283         AO_USE_PENTIUM4_INSTRS for gcc/x32.
284         * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove ILP32-specific code
285         (AO_T_IS_INT definition).
286
287 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
288
289         * src/atomic_ops/sysdeps/sunc/x86_64.h
290         (AO_compare_double_and_swap_double_full): Fix inline assembly
291         arguments commenting out "m"(*addr) one (similar to that in
292         sunc/x86.h) if AO_CMPXCHG16B_AVAILABLE defined.
293
294 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
295
296         * src/atomic_ops/sysdeps/gcc/x86_64.h
297         (AO_compare_double_and_swap_double_full): Fix a typo in comment.
298         * src/atomic_ops/sysdeps/sunc/x86_64.h
299         (AO_compare_double_and_swap_double_full): Likewise.
300
301 2012-09-18  Ivan Maidanski <ivmai@mail.ru>
302
303         * tests/test_atomic.c (acqrel_thr): Call abort() after fprintf(stderr).
304         * tests/test_malloc.c (run_one_test): Likewise.
305         * tests/test_stack.c (check_list, main): Likewise.
306
307 2012-09-05  Ivan Maidanski <ivmai@mail.ru>
308
309         * src/atomic_ops/sysdeps/gcc/x86.h
310         (AO_compare_double_and_swap_double_full): Re-implement for PIC mode
311         saving EBX to a local variable (instead of pushing it to stack) and
312         saving memory operand address to a register (edi which is manually
313         preserved), so that the whole code could also work even if EBX points
314         to memory operand (e.g., in Clang); test __PIC__ using ifdef (instead
315         of "if"); update comments; reformat code.
316
317 [7.2d]
318
319 2012-08-09  Ivan Maidanski <ivmai@mail.ru>
320
321         * README: Change version to 7.2d (rev. D).
322
323 2012-08-01  Ivan Maidanski <ivmai@mail.ru>
324
325         * src/atomic_ops.h (AO_compiler_barrier): Add parentheses and cast to
326         void.
327
328 2012-07-12  Ivan Maidanski <ivmai@mail.ru>
329
330         * config.guess: Regenerate (by autoreconf -vif using autoconf-2.68,
331         automake-1.11.1 and libtool-2.4).
332         * config.sub: Likewise.
333
334 2012-07-04  Ivan Maidanski <ivmai@mail.ru>
335
336         * src/atomic_ops/sysdeps/gcc/x86.h
337         (AO_compare_double_and_swap_double_full): Use EDI register for
338         "new_val1" argument in PIC mode only for GCC 4.3+ to workaround
339         a problem with older compiler versions (e.g., GCC 4.2.1 [FreeBSD])
340         that do not recognize 'D' as a valid register specification; update
341         comment.
342
343 2012-07-01  Ivan Maidanski <ivmai@mail.ru>
344
345         * src/atomic_ops/generalize-small.template
346         (AO_XSIZE_fetch_and_add_full,
347         AO_XSIZE_fetch_and_add_acquire, AO_XSIZE_fetch_and_add_release):
348         Fix type of function result by adding
349         'unsigned' to XCTYPE.
350         * src/atomic_ops/generalize-small.h: Regenerate.
351
352 [7.2]
353
354 2012-05-11  Ivan Maidanski <ivmai@mail.ru>
355
356         * configure.ac, README: Bump version to 7.2 (final).
357         * configure: Regenerate.
358
359 2012-05-01  H.J. Lu <hjl.tools@gmail.com>
360
361         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_fetch_and_add_full,
362         AO_and_full, AO_or_full, AO_xor_full, AO_compare_and_swap_full):
363         Remove 'q' suffix in asm instruction.
364
365 2012-04-16  H.J. Lu <hjl.tools@gmail.com>
366
367         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_T_IS_INT): Defined
368         for x32.
369
370 2012-03-28  Ivan Maidanski <ivmai@mail.ru>
371
372         * configure.ac (PICFLAG): Adjust AC_MSG_CHECKING message; report
373         "none" result if no -fPIC is needed (for Cygwin/MinGW); determine
374         whether GCC -fPIC option causes __PIC__ macro definition; pass
375         -D __PIC__ to PICFLAG (instead of CFLAGS) only if not defined
376         automatically in case -fPIC specified; update comment.
377
378 2012-03-26  Ivan Maidanski <ivmai@mail.ru>
379
380         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Do not use __m128
381         if GCC pre-v4 (at least, xmmintrin.h is missing in gcc-3.4.3-x86_64
382         included in Solaris 10 distribution).
383
384 2012-03-26  Ivan Maidanski <ivmai@mail.ru>
385
386         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Fix a typo in
387         comment.
388
389 2012-03-19  Ivan Maidanski <ivmai@mail.ru>
390
391         * configure: Regenerate.
392         * Makefile.in: Likewise.
393
394 2011-08-14  Petter Urkedal <paurkedal@gmail.com>
395
396         * atomic_ops.pc.in -> pkgconfig/atomic_ops.pc.in: Moved.
397         * pkgconfig/atomic_ops-uninstalled.pc.in: Added developer version.
398         * configure.ac, Makefile.am: Update accordingly.
399
400 2011-08-04  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
401
402         * atomic_ops.pc.in: new file.
403         * Makefile.am (pkgconfigdir, pkgconfig_DATA): new items.
404         * configure.ac (AC_CONFIG_FILES): add atomic_ops.pc.
405         * configure, Makefile.in: Regenerate.
406
407 2012-03-07  Ivan Maidanski <ivmai@mail.ru>
408
409         * src/atomic_ops/sysdeps/gcc/x86.h
410         (AO_compare_double_and_swap_double_full): Use EDI register for
411         "new_val1" argument instead of a memory operand and use XCHG assembler
412         instruction instead of push/pop in case of PIC mode (to workaround
413         a bug in GCC 4.6.1); update the comment.
414
415 2012-03-07  Ivan Maidanski <ivmai@mail.ru>
416
417         * src/atomic_ops_stack.c (AO_stack_push_release): Make "cptr" local
418         variable volatile to workaround a bug in clang-1.1/x86 compiler; add
419         comment.
420
421 2012-03-07  Ivan Maidanski <ivmai@mail.ru>
422
423         * src/atomic_ops/sysdeps/gcc/x86.h
424         (AO_compare_double_and_swap_double_full): Fix argument name in the
425         comment.
426         * src/atomic_ops/sysdeps/sunc/x86.h
427         (AO_compare_double_and_swap_double_full): Likewise.
428
429 2012-03-04  Ivan Maidanski <ivmai@mail.ru>
430
431         * src/atomic_ops_malloc.h (AO_malloc_enable_mmap): Fix a typo in the
432         comment.
433
434 2012-01-19  Ivan Maidanski <ivmai@mail.ru>
435
436         * tests/test_atomic.c (main): Put "void" keyword into the arguments
437         specification of the function prototype.
438         * tests/test_stack.c (main): Likewise.
439
440 2011-12-16  Ivan Maidanski <ivmai@mail.ru>
441
442         * src/atomic_ops/sysdeps/gcc/arm.h (__ARM_ARCH_7__, __ARM_ARCH_7A__):
443         Recognize to override __ARM_ARCH_5xx__ macros (since Android NDK GCC
444         defines both for armv7); update comment.
445
446 2011-11-29  Ivan Maidanski <ivmai@mail.ru>
447
448         * src/atomic_ops/sysdeps/gcc/hexagon.h: Include generalize.h file
449         before ao_t_is_int.h one.
450         * src/atomic_ops/sysdeps/gcc/ia64.h: Likewise.
451         * src/atomic_ops/sysdeps/hpc/ia64.h: Likewise.
452
453 2011-11-03  Ivan Maidanski <ivmai@mail.ru>
454
455         * src/atomic_ops/generalize-small.template
456         (AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire,
457         AO_XSIZE_fetch_and_add_release): Change return type from AO_t to
458         XCTYPE.
459         * src/atomic_ops/generalize-small.h: Regenerate.
460
461 2011-10-24  Ivan Maidanski <ivmai@mail.ru>
462
463         * src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap_full):
464         Change "result" local variable type from AO_t to int.
465         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_compare_and_swap_full):
466         Likewise.
467
468 2011-10-24  Ivan Maidanski <ivmai@mail.ru>
469
470         * tests/test_atomic_include.h: Regenerate.
471
472 2011-10-24  Ivan Maidanski <ivmai@mail.ru>
473
474         * tests/test_atomic_include.template (test_atomicXX): Add action for
475         the missing AO_compare_and_swap primitive.
476
477 2011-10-21  Ivan Maidanski <ivmai@mail.ru>
478
479         * src/atomic_ops.c (init_lock): Define only unless AO_USE_NO_SIGNALS.
480
481 2011-10-21  Ivan Maidanski <ivmai@mail.ru>
482
483         * doc/README.txt: Fix a typo.
484
485 2011-10-21  Ivan Maidanski <ivmai@mail.ru>
486
487         * src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Cast
488         returned value to int.
489
490 2011-10-17  Ivan Maidanski <ivmai@mail.ru>
491
492         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
493
494 2011-10-17  Ivan Maidanski <ivmai@mail.ru> (really Thorsten Glaser)
495
496         * src/atomic_ops/sysdeps/gcc/m68k.h (AO_test_and_set_full): Cast the
497         returned value.
498
499 2011-10-15  Ivan Maidanski <ivmai@mail.ru>
500
501         * src/atomic_ops/sysdeps/gcc/s390.h (AO_compare_and_swap_full):
502         Change return from AO_t to int.
503         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_compare_and_swap_acquire,
504         AO_compare_and_swap_release, AO_compare_and_swap_full): Likewise.
505
506 2011-10-11  Ivan Maidanski <ivmai@mail.ru> (really Linas Vepstas)
507
508         * src/atomic_ops/sysdeps/Makefile.am (nobase_private_HEADERS): Add
509         hexagon.h.
510         * src/atomic_ops.h: Include hexagon.h file.
511         * src/atomic_ops/sysdeps/gcc/hexagon.h: New file.
512
513 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
514
515         * src/atomic_ops.c
516         (AO_non_posix_implementation_is_entirely_in_headers): Make external.
517
518 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
519
520         * configure: Regenerate.
521         * tests/Makefile.in: Ditto.
522         * tests/test_atomic_include.h: Ditto.
523
524 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
525
526         * configure.ac (PICFLAG, THREADDLLIBS): Define as empty for MinGW.
527         * configure.ac (have_pthreads): New definition (set to true unless
528         MinGW).
529         * configure.ac (HAVE_PTHREAD_H): New AM conditional (based on
530         have_pthreads value).
531         * tests/Makefile.am (test_atomic_pthreads_SOURCES,
532         test_atomic_pthreads_CPPFLAGS, test_atomic_pthreads_LDADD): Define
533         only if HAVE_PTHREAD_H.
534         * tests/Makefile.am (TESTS): Don't include test_atomic_pthreads unless
535         HAVE_PTHREAD_H.
536         * tests/Makefile.am (check_PROGRAMS): Define to TESTS value.
537
538 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
539
540         * configure.ac (PICFLAG): Set to -fPIC if GCC but not Gygwin.
541
542 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
543
544         * tests/test_malloc.c (LIST_LENGTH, LARGE_OBJ_SIZE): Define to
545         a smaller value unless HAVE_MMAP.
546
547 2011-09-21  Ivan Maidanski <ivmai@mail.ru>
548
549         * tests/test_malloc.c (cons, run_one_test): Call exit with a non-zero
550         code (instead of abort) if out of memory.
551         * tests/test_stack.c (add_elements): Likewise.
552         * tests/test_stack.c (main): Use a distinct exit code if a thread
553         creation failed.
554
555 2011-09-15  Ivan Maidanski <ivmai@mail.ru>
556
557         * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo (replace AO_FORCE_CAS
558         with AO_REQUIRE_CAS in a comment).
559
560 2011-09-08  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
561
562         * src/Makefile.am, tests/Makefile.am: Set compiler include paths
563         to $(top_builddir)/src and $(top_srcdir)/src.
564         * src/Makefile.in: Regenerate.
565         * tests/Makefile.in: Ditto.
566
567 2011-07-14  Ivan Maidanski <ivmai@mail.ru>
568
569         * tests/list_atomic.template (list_atomicXX): Remove "addr" local
570         variable (use "&val" instead); initialize "newval" and "oldval"
571         local variables; rename "tsaddr" local variable to "ts" one.
572         * tests/list_atomic.template (list_atomicXX): Fix
573         AO_test_and_setXX call (pass address instead of value).
574         * tests/list_atomic.template: Expand all tabs to spaces; remove
575         trailing spaces at EOLn.
576         * tests/run_parallel.inc: Ditto.
577         * tests/test_atomic.c: Ditto.
578         * tests/list_atomic.c: Regenerate.
579         * tests/run_parallel.inc (AO_PTRDIFF_T): New macro.
580         * tests/run_parallel.inc (tramp): Cast between pointer and integer
581         types via casting to AO_PTRDIFF_T.
582         * tests/test_atomic.c (add1sub1_thr, acqrel_thr): Ditto.
583         * tests/run_parallel.inc (run_parallel): Adjust printf format
584         specifiers for DWORD parameters.
585         * tests/test_stack.c: Skip test if no pthreads.
586
587 2011-06-27  Ivan Maidanski <ivmai@mail.ru> (really Jeremy Huddleston)
588
589         * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
590         Explicitly cast 0xff to unsigned char (otherwise LLVM v2.7 GAS
591         reports an error); don't recognize AO_XCHGB_RET_WORD.
592         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
593         Ditto.
594
595 2011-06-15  Ivan Maidanski <ivmai@mail.ru>
596
597         * configure.ac, README: Change to version 7.2alpha7.
598         * configure: Regenerate.
599
600 [7.2alpha6]
601
602 2011-06-14  Ivan Maidanski  <ivmai@mail.ru>
603
604         * configure.ac, README: Change to version 7.2alpha6.
605         * configure: Regenerate.
606
607 2011-06-07  Ivan Maidanski  <ivmai@mail.ru>
608
609         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_load): Do not
610         define for pre-ARMv6 directly (revert part of the previous
611         commit).
612         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set,
613         AO_test_and_set_full): Refine the comment.
614         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Define
615         SWP-based implementation at the end of file (if none of
616         AO_test_and_set functions are defined previously).
617         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Remove
618         SWP-based implementation (revert part of the previous commit).
619         * src/atomic_ops/sysdeps/gcc/arm.h (AO_store): Remove redundant
620         definition at the file end (revert part of the previous commit).
621
622 2011-06-07  Ivan Maidanski  <ivmai@mail.ru>
623
624         * src/atomic_ops/sysdeps/gcc/arm.h: Handle ARMv6M architecture.
625         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Force "swp"
626         instruction usage (instead of ldrex/strex) if AO_FORCE_USE_SWP;
627         add a comment.
628         * src/atomic_ops/sysdeps/gcc/arm.h
629         (AO_compare_double_and_swap_double): Handle ARMv7EM architecture
630         (similar to ARMv7M).
631         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set, AO_nop_full,
632         AO_load, AO_store): Define at the end of file (in case not defined
633         previously).
634
635 2011-06-07  Ivan Maidanski  <ivmai@mail.ru>
636
637         * src/atomic_ops/generalize.h: Reformat code.
638         * src/atomic_ops/generalize.h (AO_test_and_set_acquire): Fix
639         return type.
640         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_test_and_set): Ditto.
641         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Ditto.
642         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set): Add
643         a comment (about SWP instruction).
644
645 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
646
647         * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
648         AO_THUMB_RESTORE_MODE): Use single-digit labels (to workaround
649         a bug in GCC v4.2.1 which reports "garbage following instruction"
650         otherwise).
651         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Use "IT"
652         instruction only for Thumb-2 mode.
653
654 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
655
656         * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
657         AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define as empty
658         for Thumb-2 mode.
659         * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set,
660         AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1,
661         AO_compare_and_swap, AO_compare_double_and_swap_double): Remove
662         unnecessary "memory" keyword from the list of clobbered registers
663         (revert part of the previous commit).
664         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Add
665         a comment for "IT" instruction.
666         * src/atomic_ops/sysdeps/gcc/arm.h
667         (AO_compare_double_and_swap_double): Don't define on the
668         architectures where unimplemented; add a comment; replace return
669         (in the loop) statement with break.
670
671 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
672
673         * src/atomic_ops/sysdeps/gcc/arm.h (AO_THUMB_GO_ARM,
674         AO_THUMB_RESTORE_MODE, AO_THUMB_SWITCH_CLOBBERS): Define new
675         macro (to switch temporarily CPU mode to ARM in inline assembler
676         if compiling in the Thumb mode and to restore it back on leave).
677         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full, AO_store,
678         AO_test_and_set, AO_fetch_and_add, AO_fetch_and_add1,
679         AO_fetch_and_sub1, AO_compare_and_swap, AO_test_and_set_full):
680         Enable compilation in the Thumb mode (use AO_THUMB_GO_ARM,
681         AO_THUMB_RESTORE_MODE and AO_THUMB_SWITCH_CLOBBERS macros).
682         * src/atomic_ops/sysdeps/gcc/arm.h (AO_store, AO_test_and_set,
683         AO_fetch_and_add, AO_fetch_and_add1, AO_fetch_and_sub1,
684         AO_compare_and_swap, AO_compare_double_and_swap_double): Add
685         "memory" to the list of clobbered registers.
686
687 2011-06-06  Ivan Maidanski  <ivmai@mail.ru>
688
689         * src/atomic_ops/sysdeps/gcc/arm.h: Reformat code.
690         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
691         AO_test_and_set_full): Add assembler comment containing the
692         function name.
693
694 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
695
696         * tests/test_malloc.c (run_one_test): Test AO_malloc() result
697         (if out of memory then print the message and abort).
698         * tests/test_stack.c (add_elements): Ditto.
699
700 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
701
702         * src/atomic_ops/generalize.h (AO_HAVE_or_full): Add missing
703         definition.
704         * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_HAVE_nop_write):
705         Fix macro name.
706         * src/atomic_ops/sysdeps/read_ordered.h (AO_HAVE_nop_read): Ditto.
707         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_store_release):
708         Ditto.
709
710 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
711
712         * src/atomic_ops/generalize-small.template
713         (AO_HAVE_XSIZE_fetch_and_add_full): Add missing definition.
714         * src/atomic_ops/generalize-small.template: Reformat code.
715         * src/atomic_ops/generalize-small.h: Regenerate.
716
717 2011-06-03  Ivan Maidanski  <ivmai@mail.ru>
718
719         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Remove
720         blank line between AO_func and AO_HAVE_func definitions.
721         * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
722         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
723         * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
724         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
725         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
726         * src/atomic_ops/sysdeps/ordered.h: Ditto.
727         * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
728         * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
729         * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
730         * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
731         * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
732         * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
733         * src/atomic_ops/sysdeps/gcc/cris.h: Ditto.
734         * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
735         * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
736         * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
737         * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
738         * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
739         * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
740         * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
741         * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
742         * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
743         * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
744         * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
745         * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
746         * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
747         * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
748         * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
749         * src/atomic_ops/sysdeps/sunc/sparc.h: Ditto.
750         * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
751         * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
752         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Reformat
753         comment.
754         * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
755         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
756         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
757         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
758         * src/atomic_ops/sysdeps/ordered.h: Ditto.
759         * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
760         * src/atomic_ops/sysdeps/test_and_set_t_is_char.h: Remove file
761         tail blank lines.
762         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Don't
763         define for ARMv2.
764         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire,
765         AO_test_and_set, AO_compare_and_swap): Merge adjacent definitions.
766         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_store_release):
767         Define.
768         * src/atomic_ops/sysdeps/sunc/sparc.h: Expand all tabs to spaces;
769         remove trailing spaces at EOLn.
770
771 2011-06-02  Ivan Maidanski  <ivmai@mail.ru>
772
773         * tests/test_malloc.c (main): Remove unused "exper_n" local
774         variable.
775         * tests/test_stack.c (run_one_test): Remove unused "aux" local
776         variable.
777
778 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
779
780         * src/atomic_ops/sysdeps/gcc/arm.h
781         (AO_compare_double_and_swap_double,
782         AO_HAVE_compare_double_and_swap_double): Define only starting from
783         ARMv6K.
784         * src/atomic_ops/sysdeps/gcc/arm.h
785         (AO_compare_double_and_swap_double): Fix function name in
786         assembler code; replace while (1) loop with "do-while".
787
788 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
789
790         * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full):
791         Specify "%b0" (instead of "%0") in "xchg" instruction (to
792         workaround a bug in Sun C 5.11).
793         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
794         Ditto.
795
796 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
797
798         * src/atomic_ops_malloc.c (AO_malloc_enable_mmap): Workaround for
799         Sun C compiler (call "release" variant of AO_store).
800
801 2011-06-01  Ivan Maidanski  <ivmai@mail.ru>
802
803         * configure.ac (_PTHREADS): New template (used for NetBSD).
804         * configure.ac (THREADDLLIBS): New macro.
805         * tests/Makefile.am (test_atomic_LDADD, test_stack_LDADD,
806         test_atomic_pthreads_LDADD, test_malloc_LDADD): Use THREADDLLIBS
807         instead of "-lpthread".
808         * configure: Regenerate.
809         * Makefile.in: Ditto.
810         * doc/Makefile.in: Ditto.
811         * src/Makefile.in: Ditto.
812         * src/atomic_ops/Makefile.in: Ditto.
813         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
814         * src/config.h.in: Ditto.
815         * tests/Makefile.in: Ditto.
816
817 2011-05-30  Ivan Maidanski  <ivmai@mail.ru>
818
819         * configure.ac (PIC): Add workaround for GCC v3.4.6 which does not
820         define the corresponding macro.
821         * configure.ac: Don't check for GCC twice.
822         * configure: Regenerate.
823         * tests/test_malloc.c (DEFAULT_NTHREADS): New macro.
824         * tests/test_malloc.c (run_one_test): Refine printed message (in
825         case of HAVE_MMAP).
826         * tests/test_malloc.c (main): Use DEFAULT_NTHREADS.
827         * tests/test_stack.c (main): Cast AO_stack_pop() returned pointer.
828         * src/atomic_ops_malloc.c (USE_MMAP_ANON, GC_MMAP_FLAGS,
829         OPT_MAP_ANON): New macro.
830         * src/atomic_ops_malloc.c (get_mmaped): Pass -1 (instead of 0) as
831         file descriptor to mmap() if MAP_ANONYMOUS (same as for MAP_ANON).
832         * src/atomic_ops_malloc.c (get_mmaped): Use USE_MMAP_ANON,
833         GC_MMAP_FLAGS and OPT_MAP_ANON macros; reformat code; check open()
834         returned value.
835
836 2011-05-11  Ivan Maidanski  <ivmai@mail.ru>
837
838         * tests/test_malloc.c: Expand all tabs to spaces; remove trailing
839         spaces at EOLn.
840         * tests/test_malloc.c (LENGTH, LARGE): Rename to LIST_LENGTH and
841         LARGE_OBJ_SIZE, respectively.
842         * tests/test_malloc.c (MAX_NTHREADS, N_REVERSALS, LIST_LENGTH,
843         LARGE_OBJ_SIZE): Do not define unless undefined.
844         * tests/test_malloc.c (run_one_test): Recognize DEBUG_RUN_ONE_TEST
845         macro.
846
847 2011-05-10  Ivan Maidanski  <ivmai@mail.ru>
848
849         * tests/Makefile.am (EXTRA_DIST): Add list_atomic.c; update
850         comment.
851         * tests/Makefile.am (CLEANFILES): Remove test_atomic_include.h,
852         list_atomic.c.
853         * tests/Makefile.am: Remove trailing spaces at EOLn.
854         * tests/Makefile.in: Regenerate.
855
856 2011-05-10  Ivan Maidanski  <ivmai@mail.ru>
857
858         * tests/test_stack.c (MAX_NTHREADS, N_EXPERIMENTS): Do not define
859         unless undefined.
860         * tests/test_stack.c: Expand all tabs to spaces.
861         * tests/test_atomic_include.h: Ditto.
862         * tests/test_stack.c (main): Free pop'ed elements.
863         * tests/test_atomic_include.h (test_atomic, test_atomic_release,
864         test_atomic_acquire, test_atomic_read, test_atomic_write,
865         test_atomic_full, test_atomic_release_write,
866         test_atomic_acquire_read): Remove prototype.
867
868 2011-04-22  Ivan Maidanski  <ivmai@mail.ru>
869
870         * src/atomic_ops/sysdeps/gcc/ia64.h (AO_MASK): Add "volatile" for
871         asm; remove redundant trailing ';'.
872
873 2011-04-11  Ivan Maidanski  <ivmai@mail.ru> (really Jim Meyering)
874
875         * doc/README.txt: Remove doubled words in comments.
876
877 2011-03-18  Ivan Maidanski  <ivmai@mail.ru>
878
879         * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
880         ARM chips instead of all the currently existing v6+ ones.
881
882 2011-03-13  Ivan Maidanski  <ivmai@mail.ru>
883
884         * src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
885         expand all tabs to spaces.
886         * src/atomic_ops/sysdeps/gcc/x86.h (AO_test_and_set_full):
887         Recognize AO_XCHGB_RET_WORD new macro (to workaround a bug).
888         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_test_and_set_full):
889         Ditto.
890
891 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
892
893         * src/atomic_ops.c: Include sys/time.h (to get timespec) for NaCl.
894         * src/atomic_ops_malloc.c (msb): Do the shift by 32 only once (in
895         a conditional expression) to prevent a compiler warning.
896         * src/atomic_ops_malloc.c: Expand all tabs to spaces; remove
897         trailing spaces at EOLn.
898
899 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
900
901         * src/atomic_ops.c: Explicitly define AO_USE_NO_SIGNALS and
902         AO_USE_NANOSLEEP for NaCl.
903
904 2011-02-19  Ivan Maidanski  <ivmai@mail.ru>
905
906         * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.68,
907         automake-1.11.1 and libtool-2.4).
908         * configure: Ditto.
909
910 2011-02-09  Ivan Maidanski  <ivmai@mail.ru>
911
912         * src/atomic_ops.c (AO_USE_NO_SIGNALS, AO_USE_NANOSLEEP): New
913         macros.
914         * src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Imply
915         AO_USE_NO_SIGNALS.
916         * src/atomic_ops.c: Don't include signal.h if AO_USE_NO_SIGNALS.
917         * src/atomic_ops.c: Include time.h if AO_USE_NANOSLEEP.
918         * src/atomic_ops.c (AO_locks, AO_pause): Reformat the code.
919         * src/atomic_ops.c (AO_pause): Use nanosleep() if
920         AO_USE_NANOSLEEP.
921         * src/atomic_ops.c (all_sigs, initialized,
922         AO_compare_and_swap_emulation,
923         AO_compare_double_and_swap_double_emulation): Use
924         AO_USE_NO_SIGNALS instead of AO_USE_WIN32_PTHREADS.
925
926 2011-01-07  Ivan Maidanski  <ivmai@mail.ru>
927
928         * src/.cvsignore: Add more auto-generated files.
929         * tests/.cvsignore: Ditto.
930         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full, AO_store,
931         AO_compare_double_and_swap_double): Reformat code.
932         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full,
933         AO_compare_double_and_swap_double): Ditto.
934         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
935         Produce "it eq" instruction only for Thumb mode.
936         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
937
938 2010-11-23  Ivan Maidanski <ivmai@mail.ru> (really Michael Hope)
939
940         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_compare_and_swap):
941         Insert "it eq" just before "strexeq" (required for Thumb-2 mode,
942         ignored in ARM mode).
943         * src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Ditto.
944
945 2010-09-15  Ivan Maidanski <ivmai@mail.ru> (with input from Gregory Farnum)
946
947         * src/atomic_ops.h: Include armcc/arm_v6.h if __ARMCC__.
948         * src/atomic_ops.h: Include ibmc/powerpc.h if __IBMC__.
949         * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if msftc/arm.h is
950         included.
951         * src/atomic_ops.h: Define AO_GENERALIZE_TWICE if AO_CAN_EMUL_CAS
952         is defined but emul_cas.h has not been included.
953         * src/atomic_ops/sysdeps/gcc/arm.h: Fix a typo.
954
955 2010-08-14  Ivan Maidanski <ivmai@mail.ru>
956
957         * aclocal.m4: Regenerate (by autoreconf -vif using autoconf-2.67,
958         automake-1.11.1 and libtool-2.2.8).
959         * configure: Ditto.
960
961 2010-08-14  Ivan Maidanski <ivmai@mail.ru>
962
963         * src/atomic_ops/sysdeps/gcc/arm.h: Replace C++ style comment
964         with ANSI C one.
965
966 2010-05-30  Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
967
968         * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Use
969         "register long" (instead of "int") for "ret" variable.
970         * src/atomic_ops/sysdeps/gcc/avr32.h (AO_test_and_set): Replace
971         with AO_test_and_set_full (same for AO_HAVE_test_and_set).
972         * src/atomic_ops/sysdeps/gcc/avr32.h (AO_compare_and_swap_full):
973         New function implemented.
974
975 2010-05-22  Ivan Maidanski <ivmai@mail.ru>
976
977         * src/atomic_ops/sysdeps/Makefile.am (nobase_sysdep_HEADERS):
978         Add "gcc/avr32.h".
979         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
980
981 2010-05-21  Ivan Maidanski <ivmai@mail.ru> (really Bradley Smith)
982
983         * src/atomic_ops.h: Recognize __avr32__ (include gcc/avr32.h).
984         * src/atomic_ops/sysdeps/gcc/avr32.h: New file.
985
986 2010-04-29  Ivan Maidanski <ivmai@mail.ru>
987
988         * doc/README_malloc.txt: Fix a typo.
989         * doc/README_stack.txt: Ditto.
990
991 2010-02-25  Ivan Maidanski <ivmai@mail.ru> (really Bruce Mitchener)
992
993         * .cvsignore: New file.
994         * doc/.cvsignore: Ditto.
995         * src/.cvsignore: Ditto.
996         * src/atomic_ops/.cvsignore: Ditto.
997         * src/atomic_ops/sysdeps/.cvsignore: Ditto.
998         * tests/.cvsignore: Ditto.
999
1000 2010-02-19  Ivan Maidanski <ivmai@mail.ru> (mostly really Patrick Marlier)
1001
1002         * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full):
1003         Use __sync_bool_compare_and_swap() if AO_USE_SYNC_CAS_BUILTIN.
1004         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
1005         Ditto.
1006         * src/atomic_ops.h (AO_USE_SYNC_CAS_BUILTIN): New macro defined
1007         if GCC v4.2+ or Intel compiler v11.1+ (only for amd64).
1008         * src/atomic_ops.h: Include GCC-specific sysdeps files for Intel
1009         compiler in GCC compatible mode (only for x86 and amd64).
1010
1011 2010-02-18  Ivan Maidanski <ivmai@mail.ru>
1012
1013         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Don't check
1014         for AO_USE_PENTIUM4_INSTRS (since "mfence" (SSE2) is supported on
1015         all x86_64/amd64 chips); remove the comment.
1016         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
1017         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Define only
1018         if AO_ASM_X64_AVAILABLE.
1019         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full):
1020         Use built-in __sync_bool_compare_and_swap() if GCC v4.2+.
1021
1022 2010-02-17  Ivan Maidanski <ivmai@mail.ru> (really Patrick Marlier)
1023
1024         * src/atomic_ops/sysdeps/gcc/x86.h (AO_compare_and_swap_full,
1025         AO_compare_double_and_swap_double_full): Use EAX for the result
1026         since cmpxchg clobbers it.
1027         * src/atomic_ops/sysdeps/sunc/x86.h (AO_compare_and_swap_full,
1028         AO_compare_double_and_swap_double_full): Ditto.
1029         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_compare_and_swap_full,
1030         AO_compare_double_and_swap_double_full): Ditto.
1031         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_compare_and_swap_full,
1032         AO_compare_double_and_swap_double_full): Ditto.
1033
1034 2010-02-04  Ivan Maidanski <ivmai@mail.ru>
1035
1036         * doc/Makefile.in: Regenerate.
1037
1038 2010-02-04  Ivan Maidanski <ivmai@mail.ru> (really Ian Wienand)
1039
1040         * doc/Makefile.am: Remove duplicate file in the list.
1041
1042 2010-02-03  Ivan Maidanski <ivmai@mail.ru>
1043
1044         * ChangeLog: Fix some typos.
1045
1046 2010-02-03  Ivan Maidanski <ivmai@mail.ru>
1047
1048         * src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release):
1049         Define "i" variable only if used (to suppress a compiler warning).
1050
1051 2010-02-02  Ivan Maidanski <ivmai@mail.ru>
1052
1053         * src/atomic_ops/sysdeps/sunc/x86.h (AO_test_and_set_full): Fix
1054         "xchg" data size (remove "l" suffix).
1055         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full):
1056         Ditto.
1057         * src/atomic_ops/sysdeps/sunc/x86_64.h (AO_test_and_set_full): Use
1058         AO_TS_t for oldval.
1059         * src/atomic_ops/sysdeps/sunc/x86.h
1060         (AO_compare_double_and_swap_double_full,
1061         AO_HAVE_compare_double_and_swap_double_full): Comment out (since
1062         not tested, might be wrong, and tickles a bug in some Sun CC
1063         versions; besides, __PIC__ macro is never predefined by Sun CC).
1064
1065 2010-01-29  Ivan Maidanski <ivmai@mail.ru>
1066
1067         * INSTALL: Regenerate (by autoreconf -vif using libtool-2.2.6b,
1068         automake-1.11.1, autoconf-2.65).
1069         * Makefile.in: Ditto.
1070         * aclocal.m4: Ditto.
1071         * compile: Ditto.
1072         * config.guess: Ditto.
1073         * config.sub: Ditto.
1074         * configure: Ditto.
1075         * depcomp: Ditto.
1076         * install-sh: Ditto.
1077         * missing: Ditto.
1078         * mkinstalldirs: Ditto.
1079         * doc/Makefile.in: Ditto.
1080         * src/Makefile.in: Ditto.
1081         * src/atomic_ops/Makefile.in: Ditto.
1082         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
1083         * src/config.h.in: Ditto.
1084         * tests/Makefile.in: Ditto.
1085
1086 2009-12-19  Ivan Maidanski <ivmai@mail.ru>
1087
1088         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_lwsync): Redirect to
1089         AO_sync() if __NO_LWSYNC__ (same as for gcc/powerpc.h).
1090
1091 2009-12-17  Ivan Maidanski <ivmai@mail.ru> (really Emmanuel Stapf)
1092
1093         * src/atomic_ops.h: Recognize _M_X64 (as an alias for _AMD64_).
1094
1095 2009-12-04  Ivan Maidanski <ivmai@mail.ru>
1096
1097         * configure.ac, README: Change to version 7.2alpha5.
1098         * configure: Regenerate.
1099
1100 [7.2alpha4]
1101
1102 2009-12-02  Ivan Maidanski <ivmai@mail.ru>
1103
1104         * configure.ac, README: Change to version 7.2alpha4.
1105         * configure: Regenerate.
1106
1107 2009-12-01  Ivan Maidanski <ivmai@mail.ru>
1108
1109         * configure.ac, README: Change to version 1.3alpha1.
1110         * configure: Regenerate.
1111
1112 2009-11-21  Ivan Maidanski <ivmai@mail.ru> (really Daniel R. Grayson)
1113
1114         * configure.ac (AC_CONFIG_COMMANDS): Quote PICFLAG, CC, DEFS
1115         values.
1116         * configure: Regenerate.
1117
1118 2009-10-06  Ivan Maidanski <ivmai@mail.ru>
1119
1120         * src/atomic_ops/sysdeps/gcc/sh.h: Remove commented out AO_TS_SET
1121         redefinition.
1122
1123 2009-10-05  Ivan Maidanski <ivmai@mail.ru>
1124
1125         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1126
1127 2009-10-05  Ivan Maidanski <ivmai@mail.ru> (really Takashi YOSHII)
1128
1129         * src/atomic_ops/sysdeps/gcc/sh.h: New file.
1130         * src/atomic_ops.h: Include gcc/sh.h if __arm__.
1131         * src/atomic_ops/sysdeps/Makefile.am: Add gcc/sh.h entry.
1132
1133 2009-10-02  Ivan Maidanski <ivmai@mail.ru>
1134
1135         * src/atomic_ops/sysdeps/Makefile.am: Add armcc/arm_v6.h,
1136         msftc/arm.h, msftc/common32_defs.h, sunc/x86.h sunc/x86_64.h
1137         entries; order all entries alphabetically.
1138         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1139
1140 2009-10-01  Ivan Maidanski <ivmai@mail.ru>
1141
1142         * aclocal.m4: Regenerate (by autoreconf -vif using libtool-2.2,
1143         automake-1.10.2, autoconf-2.64).
1144         * INSTALL: Ditto.
1145         * Makefile.in: Ditto.
1146         * aclocal.m4: Ditto.
1147         * config.guess: Ditto.
1148         * config.sub: Ditto.
1149         * configure: Ditto.
1150         * depcomp: Ditto.
1151         * install-sh: Ditto.
1152         * missing: Ditto.
1153         * mkinstalldirs: Ditto.
1154         * doc/Makefile.in: Ditto.
1155         * src/config.h.in: Ditto.
1156         * src/Makefile.in: Ditto.
1157         * src/atomic_ops/Makefile.in: Ditto.
1158         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
1159         * tests/Makefile.in: Ditto.
1160
1161 2009-10-01  Ivan Maidanski <ivmai@mail.ru>
1162
1163         * src/atomic_ops/sysdeps/gcc/x86.h: Remove spaces preceding '#'
1164         for the preprocessor directives.
1165         * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
1166
1167 2009-09-30  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
1168
1169         * README: Move notes from the hand-edited part of INSTALL which
1170         was overwritten by Automake recently.
1171
1172 2009-09-26  Ivan Maidanski <ivmai@mail.ru>
1173
1174         * aclocal.m4: Regenerate (by autoreconf -vif).
1175         * config.guess: Ditto.
1176         * config.sub: Ditto.
1177         * configure: Ditto.
1178         * INSTALL: Ditto.
1179         * Makefile.in: Ditto.
1180         * doc/Makefile.in: Ditto.
1181         * src/config.h.in: Ditto.
1182         * src/Makefile.in: Ditto.
1183         * src/atomic_ops/Makefile.in: Ditto.
1184         * src/atomic_ops/sysdeps/Makefile.in: Ditto.
1185         * tests/Makefile.in: Ditto.
1186
1187 2009-09-25  Ivan Maidanski <ivmai@mail.ru> (really Petter Urkedal)
1188
1189         * configure.ac: Replace AC_PROG_CC with AM_PROG_CC_C_O.
1190
1191 2009-09-16  Ivan Maidanski <ivmai@mail.ru>
1192
1193         * ChangeLog: Remove trailing spaces at EOLn.
1194         * doc/README.txt: Expand all tabs to spaces; remove trailing
1195         spaces at EOLn; remove multiple trailing blank lines.
1196         * src/atomic_ops.c: Ditto.
1197         * src/atomic_ops.h: Ditto.
1198         * src/atomic_ops/generalize-small.h: Ditto.
1199         * src/atomic_ops/generalize.h: Ditto.
1200         * src/atomic_ops/sysdeps/acquire_release_volatile.h: Ditto.
1201         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Ditto.
1202         * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Ditto.
1203         * src/atomic_ops/sysdeps/all_atomic_load_store.h: Ditto.
1204         * src/atomic_ops/sysdeps/ao_t_is_int.h: Ditto.
1205         * src/atomic_ops/sysdeps/armcc/arm_v6.h: Ditto.
1206         * src/atomic_ops/sysdeps/atomic_load_store.h: Ditto.
1207         * src/atomic_ops/sysdeps/char_acquire_release_volatile.h: Ditto.
1208         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Ditto.
1209         * src/atomic_ops/sysdeps/gcc/alpha.h: Ditto.
1210         * src/atomic_ops/sysdeps/gcc/arm.h: Ditto.
1211         * src/atomic_ops/sysdeps/gcc/hppa.h: Ditto.
1212         * src/atomic_ops/sysdeps/gcc/ia64.h: Ditto.
1213         * src/atomic_ops/sysdeps/gcc/m68k.h: Ditto.
1214         * src/atomic_ops/sysdeps/gcc/mips.h: Ditto.
1215         * src/atomic_ops/sysdeps/gcc/powerpc.h: Ditto.
1216         * src/atomic_ops/sysdeps/gcc/s390.h: Ditto.
1217         * src/atomic_ops/sysdeps/gcc/sparc.h: Ditto.
1218         * src/atomic_ops/sysdeps/gcc/x86.h: Ditto.
1219         * src/atomic_ops/sysdeps/gcc/x86_64.h: Ditto.
1220         * src/atomic_ops/sysdeps/generic_pthread.h: Ditto.
1221         * src/atomic_ops/sysdeps/hpc/hppa.h: Ditto.
1222         * src/atomic_ops/sysdeps/hpc/ia64.h: Ditto.
1223         * src/atomic_ops/sysdeps/ibmc/powerpc.h: Ditto.
1224         * src/atomic_ops/sysdeps/icc/ia64.h: Ditto.
1225         * src/atomic_ops/sysdeps/int_acquire_release_volatile.h: Ditto.
1226         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Ditto.
1227         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Ditto.
1228         * src/atomic_ops/sysdeps/msftc/arm.h: Ditto.
1229         * src/atomic_ops/sysdeps/msftc/common32_defs.h: Ditto.
1230         * src/atomic_ops/sysdeps/msftc/x86.h: Ditto.
1231         * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
1232         * src/atomic_ops/sysdeps/ordered.h: Ditto.
1233         * src/atomic_ops/sysdeps/ordered_except_wr.h: Ditto.
1234         * src/atomic_ops/sysdeps/read_ordered.h: Ditto.
1235         * src/atomic_ops/sysdeps/short_acquire_release_volatile.h: Ditto.
1236         * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Ditto.
1237         * src/atomic_ops/sysdeps/short_atomic_load_store.h: Ditto.
1238         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Ditto.
1239         * src/atomic_ops/sysdeps/sunc/x86.h: Ditto.
1240         * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
1241         * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h: Ditto.
1242         * src/atomic_ops_stack.c: Ditto.
1243         * src/atomic_ops_stack.h: Ditto.
1244         * src/atomic_ops/sysdeps/gcc/arm.h: Replace non-ASCII quotes in a
1245         comment.
1246         * src/atomic_ops/sysdeps/gcc/mips.h: Use Unix-style EOLn.
1247
1248 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1249         (ivmai123.diff)
1250
1251         * src/atomic_ops/sysdeps/msftc/arm.h: Add FIXME for InterlockedOps
1252         (regarding memory barrier).
1253         * src/atomic_ops/sysdeps/msftc/arm.h: Don't recognize
1254         AO_ASSUME_ARM_ARCH6 anymore; check for _M_ARM >= 6 instead.
1255         * src/atomic_ops/sysdeps/msftc/arm.h (AO_nop_full,
1256         AO_test_and_set): Replace FIXME with the comment saying it is
1257         emulated (in generalize.h); include test_and_set_t_is_ao_t.h.
1258         * src/atomic_ops/sysdeps/msftc/arm.h (AO_store_full): Implement
1259         using InterlockedCompareExchange() (assuming the latter has a full
1260         mbar) for ARMv6+.
1261         * src/atomic_ops/sysdeps/msftc/arm.h: Include
1262         all_atomic_load_store.h and test_and_set_t_is_ao_t.h for the case
1263         of pre-ARMv6; add the comment.
1264
1265 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1266         (ivmai122.diff)
1267
1268         * src/atomic_ops/sysdeps/armcc/arm_v6.h
1269         (AO_compare_double_and_swap_double): Replace false/true with 0/1.
1270         * src/atomic_ops/sysdeps/gcc/arm.h
1271         (AO_compare_double_and_swap_double): Ditto.
1272         * src/atomic_ops/sysdeps/gcc/arm.h: Recognize more ARMv6+
1273         predefined macros (6J, 6ZK, 7A, 7M, 7R).
1274         * src/atomic_ops/sysdeps/gcc/arm.h
1275         (AO_compare_double_and_swap_double): Add "cc" clobber to asm.
1276         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_HAVE_load_acquire):
1277         Correct the name (convert from the lower case).
1278         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_HAVE_load_acquire):
1279         Ditto.
1280         * src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_test_and_set,
1281         AO_compare_and_swap): Comment out unimplemented code (and the
1282         corresponding macros); add FIXME.
1283         * src/atomic_ops.c: Recognize AO_USE_WIN32_PTHREADS overriding
1284         _MSC_VER and __MINGW32__ predefined macros (useful for WinCE with
1285         pthreads-w32 library); don't include signal.h, sys/time.h,
1286         sys/select.h in this case; include windows.h instead.
1287         * src/atomic_ops.c (AO_pause): Use Sleep() in case of
1288         AO_USE_WIN32_PTHREADS (instead of select()).
1289         * src/atomic_ops.c (all_sigs, initialized): Don't define in case
1290         of AO_USE_WIN32_PTHREADS.
1291         * src/atomic_ops.c (AO_compare_and_swap_emulation,
1292         AO_compare_double_and_swap_double_emulation): Don't deal with
1293         signals in case of AO_USE_WIN32_PTHREADS.
1294
1295 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1296         (diff110)
1297
1298         * src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
1299         for ARM family).
1300         * src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
1301         * src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
1302         macro.
1303         * src/atomic_ops/sysdeps/msftc/common32_defs.h
1304         (AO_USE_INTERLOCKED_INTRINSICS): Ditto.
1305         * src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
1306         declarations to common32_defs.h.
1307         * src/atomic_ops/sysdeps/msftc/common32_defs.h
1308         (AO_INTERLOCKED_VOLATILE): New macro defined (used by
1309         Interlocked-based primitives) for compatibility with older VC++.
1310         * src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
1311         missing <intrin.h> if WinCE target.
1312         * src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
1313         (define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
1314         * src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
1315         AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
1316         AO_compare_and_swap_full): Move arch-independent primitives to
1317         common32_defs.h.
1318         * src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
1319         better CPU (since Interlocked Add and Xchg primitives are available
1320         on any 32-bit CPU).
1321         * src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
1322         400 (for i80386).
1323         * src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
1324         on x86).
1325         * src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).
1326
1327 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1328         (diff109_cvs)
1329
1330         * src/atomic_ops/sysdeps/msftc/x86.h: Fix comments (prefix
1331         ASSUME_WINDOWS98 with "AO_").
1332         * src/atomic_ops/sysdeps/msftc/x86.h: Prefix ASSUME_VISTA macro with
1333         "AO_".
1334         * src/atomic_ops/sysdeps/msftc/x86.h (AO_nop_full): Replace
1335         K&R-style function definition with ANSI C one.
1336         * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full):
1337         Replace AO_TS_SET with its value 0xff (some compilers does not like
1338         C enum consts inside inline assembler).
1339         * src/atomic_ops/sysdeps/msftc/x86.h (AO_test_and_set_full): Add
1340         comment about "missing return value" warning.
1341         * src/atomic_ops/sysdeps/msftc/x86.h
1342         (AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE): New macro.
1343         * src/atomic_ops/sysdeps/msftc/x86.h (AO_compare_and_swap_full): Use
1344         _InterlockedCompareExchange() with args and result of PVOID type
1345         if AO_OLD_STYLE_INTERLOCKED_COMPARE_EXCHANGE is defined (mostly for
1346         DigitalMars compiler support).
1347         * src/atomic_ops/sysdeps/msftc/x86.h
1348         (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
1349         variables ("val1" is the lowest part of AO_double_t).
1350         * src/atomic_ops/sysdeps/msftc/x86.h
1351         (AO_compare_double_and_swap_double_full): Rename to
1352         AO_double_compare_and_swap_full (as it has 3 args).
1353         * src/atomic_ops/sysdeps/msftc/x86.h: Replace C++ style comment
1354         with ANSI C one.
1355
1356 2009-09-10  Ivan Maidanski <ivmai@mail.ru>
1357         (diff108_cvs)
1358
1359         * src/atomic_ops/sysdeps/gcc/x86_64.h: Remove comments about i486
1360         and 32-bit WinChips.
1361         * src/atomic_ops/sysdeps/msftc/x86_64.h: Ditto.
1362         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_nop_full): Replace
1363         K&R-style function definition with ANSI C one.
1364         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Ditto.
1365         * src/atomic_ops/sysdeps/gcc/x86_64.h
1366         (AO_compare_double_and_swap_double_full): Fix comment.
1367         * src/atomic_ops/sysdeps/gcc/x86_64.h
1368         (AO_compare_double_and_swap_double_full): Swap all "val1" and "val2"
1369         variables ("val1" is the lowest part of AO_double_t).
1370         * src/atomic_ops/sysdeps/msftc/x86_64.h
1371         (AO_compare_double_and_swap_double_full): Ditto.
1372         * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove comment about
1373         ASSUME_WINDOWS98.
1374         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_ASM_X64_AVAILABLE): New
1375         macro.
1376         * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
1377         "test_and_set_t_is_char.h" if AO_ASM_X64_AVAILABLE (same as in
1378         x86_64.h for gcc); remove FIXME (for re-implement test-and-set).
1379         * src/atomic_ops/sysdeps/msftc/x86_64.h: Include
1380         "standard_ao_double_t.h" (same as in x86_64.h for gcc).
1381         * src/atomic_ops/sysdeps/msftc/x86_64.h: Add comment for include
1382         <intrin.h> assuming at least VC++ v8.
1383         * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove _Interlocked
1384         prototypes (since they are always declared in intrin.h).
1385         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_nop_full): Move its
1386         definition below CAS primitive (to textually group all asm-based
1387         primitives together).
1388         * src/atomic_ops/sysdeps/msftc/x86_64.h (AO_test_and_set_full):
1389         Implement for AO_ASM_X64_AVAILABLE case.
1390         * src/atomic_ops/sysdeps/msftc/x86_64.h: Remove AO_CASDOUBLE_MISSING
1391         macro (replaced with AO_ASM_X64_AVAILABLE).
1392         * src/atomic_ops/sysdeps/msftc/x86_64.h
1393         (AO_compare_double_and_swap_double_full): Add intrinsic-based
1394         implementation for VC++ v9+.
1395         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Include
1396         <xmmintrin.h> (and use "__m128" type) if _WIN64.
1397         * src/atomic_ops/sysdeps/standard_ao_double_t.h
1398         (AO_HAVE_DOUBLE_PTR_STORAGE): Define it always (as
1399         "double_ptr_storage" is defined for all cases).
1400
1401 2009-09-09  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1402
1403         * src/atomic_ops/sysdeps/gcc/sparc.h (NO_SPARC_V9):
1404         Renamed to AO_NO_SPARC_V9.
1405
1406 2009-09-01  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Patrick Marlier)
1407
1408         * src/atomic_ops/sysdeps/gcc/sparc.h (AO_test_and_set_full): Use
1409         AO_TS_VAL_t for "oldval" (for 64-bit support).
1410         * src/atomic_ops/sysdeps/gcc/sparc.h (AO_compare_and_swap_full):
1411         New function implemented.
1412
1413 2009-08-12  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1414         (diff107_cvs, resembling diff78 and diff88_cvs)
1415
1416         * src/atomic_ops/sysdeps/sunc/x86.h: New file.
1417         * src/atomic_ops/sysdeps/sunc/x86_64.h: Ditto.
1418         * src/atomic_ops.h (AO_INLINE): Support inlining for DigitalMars,
1419         Watcom, Sun C.
1420         * src/atomic_ops.h (AO_compiler_barrier): Use intrinsic-based
1421         implementation for VC++ v8+ (include <intrin.h> before it unless
1422         WinCE target); use asm-based barrier implementation for Borland,
1423         DigitalMars and Watcom.
1424         * src/atomic_ops.h: Fix comment (for x86_64).
1425         * src/atomic_ops.h: Include specialized x86.h and x86_64.h arch
1426         headers for Sun C (if not AO_USE_PTHREAD_DEFS).
1427         * src/atomic_ops.h: Include VC-specific arch headers for Borland,
1428         DigitalMars and Watcom (Win32 target only).
1429
1430 2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
1431         (diff87_cvs, resembling diff29, diff68, diff78 partly)
1432
1433         * doc/README.txt: Remove outdated info about Windows support.
1434         * src/atomic_ops/generalize.h (AO_nop_full): Replace
1435         K&R-style function definition with ANSI C one.
1436         * src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_nop_full): Ditto.
1437         * src/atomic_ops/sysdeps/gcc/alpha.h (AO_nop_full, AO_nop_write):
1438         Ditto.
1439         * src/atomic_ops/sysdeps/gcc/arm.h (AO_nop_full): Ditto.
1440         * src/atomic_ops/sysdeps/gcc/ia64.h (AO_nop_full): Ditto.
1441         * src/atomic_ops/sysdeps/gcc/mips.h (AO_nop_full): Ditto.
1442         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_nop_full, AO_lwsync): Ditto.
1443         * src/atomic_ops/sysdeps/gcc/x86.h (AO_nop_full): Ditto.
1444         * src/atomic_ops/sysdeps/generic_pthread.h (AO_nop_full): Ditto.
1445         * src/atomic_ops/sysdeps/hpc/ia64.h (AO_nop_full): Ditto.
1446         * src/atomic_ops/sysdeps/icc/ia64.h (AO_nop_full): Ditto.
1447         * src/atomic_ops/sysdeps/ordered.h (AO_nop_full): Ditto.
1448         * src/atomic_ops/sysdeps/ordered_except_wr.h (AO_nop_write): Ditto.
1449         * src/atomic_ops/sysdeps/read_ordered.h (AO_nop_read): Ditto.
1450         * src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h (AO_TS_val): Fix
1451         comment.
1452
1453 2009-02-24  Hans Boehm <Hans.Boehm@hp.com> (Really primarily Earl Chew)
1454
1455         * src/atomic_ops/sysdeps/gcc/powerpc.h: Add index,
1456         update modifiers to asms, refine clobbers to "cr0", use
1457         cr0 instead of cr7, add explicit AO_fetch_and_add,
1458         add UNTESTED 64 bit support.
1459
1460 2008-11-10  Hans Boehm <Hans.Boehm@hp.com> (Really Joerg Wagner)
1461
1462         * src/atomic_ops/sysdeps/armcc/arm_v6.h: Compute
1463         AO_compare_and_swap value differently, add
1464         AO_compare_double_and_swap_double, some indentation fixes.
1465         * src/atomic_ops/sysdeps/gcc/arm.h: Make gcc asm code more
1466         robust and minimize clobbers, Add AO_compare_double_and_swap_double.
1467
1468 2008-11-06  Hans Boehm <Hans.Boehm@hp.com>
1469
1470         * INSTALL: Add some platform-specific documentation.
1471         * src/Makefile.msft: Fix copyright notice.
1472
1473 2008-10-21  Hans Boehm <Hans.Boehm@hp.com>  (really Ivan Maidanski)
1474
1475         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h: Fix comments.
1476         * src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h: Fix comments.
1477         * src/atomic_ops/sysdeps/all_atomic_load_store.h: Fix comments.
1478         * src/atomic_ops/sysdeps/atomic_load_store.h: Fix comments.
1479         * src/atomic_ops/sysdeps/char_atomic_load_store.h: Fix comments.
1480         * src/atomic_ops/sysdeps/gcc/arm.h: Fix comments.
1481         * src/atomic_ops/sysdeps/gcc/x86.h: Fix comments.
1482         * src/atomic_ops/sysdeps/gcc/x86_64.h: Fix comments.
1483         * src/atomic_ops/sysdeps/hpc/hppa.h: Fix comments.
1484         * src/atomic_ops/sysdeps/hpc/ia64.h: Fix comments.
1485         * src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h: Fix comments.
1486         * src/atomic_ops/sysdeps/int_atomic_load_store.h: Fix comments.
1487         * src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h: Fix comments.
1488         * src/atomic_ops/sysdeps/short_atomic_load_store.h: Fix comments.
1489         * src/atomic_ops.c: Fix comments.
1490         * src/atomic_ops.h: Fix comments.
1491         * src/atomic_ops_stack.c: Fix comments.
1492         * src/atomic_ops_stack.h: Fix comments.
1493
1494 2008-10-20  Hans Boehm <Hans.Boehm@hp.com>  (really Andrew Agno)
1495
1496         * src/atomic_ops/sysdeps/gcc/x86_64.h (AO_int_fetch_and_add_full):
1497         fix return type.
1498
1499 2008-08-21  Hans Boehm <Hans.Boehm@hp.com>
1500
1501         * config.guess, config.sub, configure: Regenerate/replace.
1502         Use autoconf 2.61, automake 1.9.6.
1503
1504 2008-08-19  Hans Boehm <Hans.Boehm@hp.com> (really Thiemo Seufer)
1505
1506         * src/atomic_ops/sysdeps/gcc/powerpc.h: Add %U1 (update) to lwz
1507         instruction.
1508
1509 2008-08-19  Hans Boehm <Hans.Boehm@hp.com> (really Sebastian Siewior)
1510
1511         * src/atomic_ops/sysdeps/gcc/powerpc.h: Consider __NO_LWSYNC__.
1512
1513 2008-07-24  Hans Boehm <Hans.Boehm@hp.com> (really Ivan Maidanski)
1514
1515         * src/atomic_ops/sysdeps/ao_t_is_int.h, src/atomic_ops.h:
1516         Add parentheses around addr arg for various functions.
1517
1518 2008-07-18  Hans Boehm <Hans.Boehm@hp.com>
1519
1520         * src/atomic_ops/sysdeps/gcc/powerpc.h:
1521         Add const to first parameter of load calls (forgot one).
1522
1523 2008-07-18  Hans Boehm <Hans.Boehm@hp.com>
1524
1525         * doc/README.txt, src/atomic_ops/generalize.h,
1526         src/atomic_ops/generalize-small.template,
1527         src/atomic_ops/generalize-small.h,
1528         src/atomic_ops/sysdeps/acquire_release_volatile.h,
1529         src/atomic_ops/sysdeps/char_acquire_release_volatile.h,
1530         src/atomic_ops/sysdeps/int_acquire_release_volatile.h,
1531         src/atomic_ops/sysdeps/short_acquire_release_volatile.h,
1532         src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
1533         src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
1534         src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h,
1535         src/atomic_ops/sysdeps/ao_t_is_int.h,
1536         src/atomic_ops/sysdeps/atomic_load_store.h,
1537         src/atomic_ops/sysdeps/char_atomic_load_store.h,
1538         src/atomic_ops/sysdeps/int_atomic_load_store.h,
1539         src/atomic_ops/sysdeps/short_atomic_load_store.h,
1540         src/atomic_ops/sysdeps/generic_pthread.h,
1541         src/atomic_ops/sysdeps/read_ordered.h,
1542         src/atomic_ops/sysdeps/sysdeps/armcc/arm_v6.h,
1543         src/atomic_ops/sysdeps/gcc/arm.h,
1544         src/atomic_ops/sysdeps/icc/ia64.h,
1545         src/atomic_ops/sysdeps/ibmc/powerpc.h:
1546         Add const to first parameter of load calls.
1547
1548 2008-07-10  Hans Boehm <Hans.Boehm@hp.com>
1549
1550         * src/atomic_ops/sysdeps/gcc/m68k.h: Remove SMP-unsafe
1551         AO_or_full, and let it be autogenerated instead.
1552
1553 2008-07-03  Hans Boehm <Hans.Boehm@hp.com> (Really Thiemo Seufer)
1554
1555         * src/atomic_ops/sysdeps/gcc/mips.h: Really add mips support,
1556         fixing a merge accident.
1557
1558 2008-05-30  Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1559         contributors)
1560
1561         * doc/Makefile.in, src/Makefile.in, src/atomic_ops/Makefile.in:
1562         Regenerate.
1563
1564 2008-05-30  Hans Boehm <Hans.Boehm@hp.com> (Really from various Debian
1565         contributors)
1566
1567         * src/atomic_ops.h, src/atomic_ops/sysdeps/Makefile.am,
1568         src/atomic_ops/sysdeps/gcc/mips.h: Add mips support.
1569         * src/atomic_ops/sysdeps/gcc/m68k.h: Make test_and_set work
1570         on char, align AO_t.  Add cas, or.
1571         * src/atomic_ops/sysdeps/gcc/s390.h: Fix include paths.
1572         * src/atomic_ops/generalize.h: Fix AO_compare_and_swap_double_acquire.
1573         * Makefile.in, aclocal.m4, src/atomic_ops/sysdeps/Makefile.in,
1574         tests/Makefile.in: Regenerate.
1575
1576 2008-02-11  Hans Boehm <Hans.Boehm@hp.com>
1577            (Really Ian Wienand & Debian maintainers)
1578
1579         * src/atomic_ops/sysdeps/gcc/x86.h
1580         (AO_compare_double_and_swap_double_full): Correctly account for
1581         ebx usage with PIC.
1582
1583 2008-01-09  Hans Boehm <Hans.Boehm@hp.com>
1584
1585         * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
1586         double_ptr_storage default to long long; define everywhere.
1587
1588 2008-01-08  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1589
1590         * src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
1591         compare_double_and_swap_double.
1592
1593 2008-01-06  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
1594
1595         * src/atomic_ops/generalize.h: Add test_and_set generalizations,
1596         Add AO_double_compare_and_swap generalizations.
1597         * src/atomic_ops/sysdeps/armcc/arm_v6.h: New file.
1598         * src/atomic_ops/sysdeps/gcc/arm.h: Handle V6 and V7.
1599         * src/atomic_ops/sysdeps/gcc/x86.h,
1600         src/atomic_ops/sysdeps/{gcc,msftc}/x86_64.h: Conditionally add
1601         compare_double_and_swap_double, commented out for msftc.
1602         * src/atomic_ops/sysdeps/standard_ao_double_t.h:  Add
1603         double_ptr_storage field.
1604
1605 2008-01-03  Hans Boehm <Hans.Boehm@hp.com>
1606         (Merge from separate atomic_ops tree)
1607
1608         * src/atomic_ops/sysdeps/gcc/x86.h: Define correct macro for
1609         double-width cas, and fix its implementation.
1610         * doc/README.txt: Clarify use of _full.  Add more warnings about
1611         data dependencies.
1612
1613 2008-01-02  Hans Boehm <Hans.Boehm@hp.com>
1614
1615         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1616         %X1 modifier to support indexed addressing.
1617
1618 2007-07-23  Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
1619
1620         * src/atomic_ops/sysdeps/msftc/x86.h (_InterlockedExchangeAdd): Define
1621         for VC++6.
1622
1623 2007-07-05  Andreas Tobler  <a.tobler@schweiz.org>
1624
1625         * src/atomic_ops.h: Check for __powerpc64__ and __ppc64__ to include
1626         powerpc.h.
1627
1628 2007-06-26  Hans Boehm <Hans.Boehm@hp.com> (really Luca Barbato)
1629
1630         * src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
1631         64-bit version.
1632
1633 2007-06-13  Hans Boehm <Hans.Boehm@hp.com>
1634
1635         * src/atomic_ops.h: include stddef.h
1636
1637 2007-06-06  Hans Boehm <Hans.Boehm@hp.com>
1638
1639         * src/atomic_ops/sysdeps/msftc/x86_64.h: New file.
1640         * src/atomic_ops.h: Add test for msftc/x86_64.h.
1641         * src/atomic_ops/sysdeps/msftc/x86.h: Complain for _WIN64.
1642         * src/atomic_ops/sysdeps/Makefile.am: Add x86_64.h.
1643         * src/atomic_ops/sysdeps/Makefile.in: Regenerate.
1644         * src/atomic_ops/sysdeps/aligned_atomic_load_store.h,
1645         src/atomic_ops/sysdeps/int_aligned_atomic_load_store.h,
1646         src/atomic_ops/sysdeps/short_aligned_atomic_load_store.h:
1647         Replace unsigned long cast with size_t.
1648
1649 2007-05-17  Hans Boehm <Hans.Boehm@hp.com>
1650
1651         * src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
1652         Add cast for return.
1653
1654 2007-05-14  Hans Boehm <Hans.Boehm@hp.com>
1655
1656         * doc/README.txt: Update to reflect C++0x effort.
1657
1658 2007-05-07  Hans Boehm <Hans.Boehm@hp.com> (with help from Philipp Zambelli)
1659
1660         * src/atomic_ops/sysdeps/msftc/x86.h: Don't just assume that mfence
1661         is present.
1662         * src/atomic_ops/sysdeps/gcc/arm.h (AO_test_and_set_full): Correct
1663         oldval type.
1664
1665 2006-11-09  Earl Chew (Agilent)
1666
1667         * msftc/x86.h: Follow Microsoft documentation and include
1668         windows.h.
1669
1670 [1.2 release]
1671
1672 2006-07-11  Hans Boehm <Hans.Boehm@hp.com>
1673
1674         * src/atomic_ops/sysdeps/hpc/ia64.h: Fix typos.
1675
1676 2006-03-28  Earl Chew (Agilent)
1677
1678         * src/atomic_ops/sysdeps/gcc/powerpc.h: Remove unused variable cr.
1679         * src/atomic_ops/sysdeps/msftc/x86.h:
1680         Use new intrinsics available in MSVC 2003 and MSVC 2005.
1681         Use inline assembler to generate mfence and byte sized xchg
1682         Use correct prototype for InterlockedCompareExchange.
1683         * src/atomic_ops.h: Add test for __PPC__ .
1684         * tests/run_parallel.inc: Add simple VxWorks support.
1685         * tests/test_atomic.c, tests/test_atomic_include.h: Add prototypes
1686         to silence compiler warnings.
1687
1688 2006-11-13  Hans Boehm <Hans.Boehm@hp.com>
1689
1690         * src/atomic_ops/sysdeps/gcc/powerpc.h: Beginnings of 64 bit support.
1691         * src/atomic_ops/sysdeps/gcc/x86.h: Use "=q" for AO_test_and_set_full.
1692
1693 2005-11-04  Hans Boehm <Hans.Boehm@hp.com>
1694
1695         * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1696         all_acquire_release_volatile.h, instead of just the pointer-sized
1697         version.
1698         * src/atomic_ops/sysdeps/gcc/ia64.h: Include
1699         all_acquire_release_volatile.h and all_atomic_load_store.h,
1700         instead of just the pointer-sized versions.
1701
1702 [1.1 release]
1703
1704 2005-09-27  Hans Boehm <Hans.Boehm@hp.com>
1705
1706         * src/atomic_ops.h: Define AO_CAN_EMUL_CAS for arm.
1707         * src/atomic_ops/sysdeps/read_ordered.h: New file, extracted from
1708         ordered_except_wr.h.
1709         * src/atomic_ops/sysdeps/ordered_except_wr.h: include read_ordered.h
1710         instead of duplicating it.
1711         * src/atomic_ops/sysdeps/gcc/arm.h: Include read_ordered.h.
1712
1713 2005-09-16  Hans Boehm <Hans.Boehm@hp.com>
1714
1715         * src/atomic_ops/sysdeps/gcc/arm.h: Replace the AO_test_and_set
1716         definition with one that might actually work.  (Thanks to Kazu
1717         Hirata and Paul Brook.)
1718
1719 2005-08-01  Hans Boehm <Hans.Boehm@hp.com>
1720
1721         * src/atomic_ops/Makefile.am: Change function naming from "byte" to
1722         "char" (again).
1723
1724 [1.0 release]
1725
1726 2005-03-21  Hans Boehm <Hans.Boehm@hp.com>
1727         Fix various acquire_release_volatile.h files to reflect the fact
1728         that both icc and gcc seem to reorder ordinary memory accesses around
1729         volatile accesses early in the compilation. Modify the acquire
1730         release test to catch this problem (with high probability, and only on
1731         a multiprocessor).
1732
1733 2005-03 Hans Boehm <Hans.Boehm@hp.com>
1734         Fixes for recently introduced bugs.  Update x86 and x86-64 assembly
1735         syntax to deal with complaints by some recent gcc versions.
1736
1737 2005-02 Hans Boehm <Hans.Boehm@hp.com>
1738         Added libatomic_ops_gpl library with support for mostly
1739         lock-free stack and malloc().
1740
1741 2005-01 Ian Wienand <ianw@gelato.unsw.edu.au>, Al Stone <ahs3@debian.org>,
1742         Hans Boehm <Hans.Boehm@hp.com>
1743         Use autoconf, automake, starting with code from Debian package.
1744         Don't use libtool.
1745
1746 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1747         * test_and_set_t_is_ao_t.h, test_and_set_t_is_char.h, others:
1748         Change most platforms to use byte-wide test-and-set locations.
1749
1750 2005-01 Hans Boehm <Hans.Boehm@hp.com>
1751         * ao_t_is_int.h: Add to trivially support int-wide operations
1752         on platforms with int-sized pointers.
1753
1754 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1755         * gcc/powerpc.h: First serious attempt to support PowerPC (with
1756         help from Maged Michael and others).
1757
1758 2004-12 Hans Boehm <Hans.Boehm@hp.com>
1759         * sunc/sparc.[hS]: Added minimal support for the Sun SPARC compiler.
1760         * atomic_ops_sysdeps.S: Add support for platforms that require
1761         out-of-line assembly code.
1762
1763 2004-10 Hans Boehm <Hans.Boehm@hp.com>
1764         More work on char, short, int sized data.  Add both
1765         compare_double_and_swap_double and compare_and_swap_double.
1766         Typically each platform will provide at most one of these.
1767
1768 2004-07-02  Ranko Zivojnovic
1769         Replace both instances of AO_HAVE_NOP_FULL with AO_HAVE_nop_full.
1770
1771 2004-06 Hans Boehm <Hans.Boehm@hp.com>
1772         Start to add atomic_ops primitives for different sized data.
1773
1774 2003-12-18  Hans Boehm  <Hans.Boehm@hp.com>
1775
1776         * atomic_ops/sysdeps/acquire_release_volatile.h, atomic_ops.h:
1777         Fix support for ecc on IA64.  Remove compiler_barrier workaround
1778         for gcc 3.4 and later.
1779
1780 2003-12-17  Hans Boehm  <Hans.Boehm@hp.com>
1781
1782         * atomic_ops/sysdeps/hpc/{ia64.h,hppa.h},
1783         atomic_ops/sysdeps/msftc/x86.h, Makefile, Makefile.atomic_ops,
1784         Makefile.atomic_ops.msft, atomic_ops.h: Add initial support
1785         for atomic_ops for VC++/Windows/X86 and HP/UX with the HP
1786         compiler on PA_RISC and IA64.
1787
1788 2003-12-09  Hans Boehm  <Hans.Boehm@hp.com>
1789
1790         * many: Install under "atomic_ops" instead of "ao".
1791         Change atomic_ops include file structure.  Auxiliary include
1792         files are all under include/atomic_ops.
1793         Fix (hopefully) "make dist" in atomic_ops distribution.
1794         Renamed various types to end in _t, though the old versions
1795         are still defined for backward compatibility.
1796
1797 2003-12-08  Carlos O'Donell  <carlos@baldric.uwo.ca>
1798
1799         * ao_sysdeps/gcc/hppa.h: Define AO_CLEAR macro. Change
1800         AO_pa_clearable_loc type. Add __ldcw, and __ldcw_align
1801         helper macros. AO_test_and_set_full uses helper macros.
1802
1803
1804 Started sometime after version 0.4 release.  Currently the format is
1805 informal.  Eventually should become more GNU-like.