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