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