]> granicus.if.org Git - gc/commitdiff
2011-04-19 Ivan Maidanski <ivmai@mail.ru>
authorivmai <ivmai>
Tue, 19 Apr 2011 11:27:58 +0000 (11:27 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:58 +0000 (21:06 +0400)
* include/private/gc_priv.h (_GNU_SOURCE): Include features.h
first (except for NaCl) and then define the macro to 1 if not yet.

ChangeLog
include/private/gc_priv.h

index cf253592f130b6f9e2190c98bba67cdafbb4743d..9079f5a63f0b7bf809401678290523d559263662 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-19  Ivan Maidanski  <ivmai@mail.ru>
+
+       * include/private/gc_priv.h (_GNU_SOURCE): Include features.h
+       first (except for NaCl) and then define the macro to 1 if not yet.
+
 2011-04-18  Ivan Maidanski  <ivmai@mail.ru> (really Ludovic Courtes)
 
        * tests/tests.am (TESTS, check_PROGRAMS): Add
index df8bd04d0c629807b113bb9af72a3bd272ab676b..b1bb9c78b781e68d430ba667ff9b1b6def64d932 100644 (file)
 # define GC_BUILD
 #endif
 
-#if (defined(__linux__) || defined(__GLIBC__) || defined(__GNU__)) \
-    && !defined(_GNU_SOURCE)
+#if defined(__linux__) || defined(__GLIBC__) || defined(__GNU__)
   /* Can't test LINUX, since this must be defined before other includes. */
-# define _GNU_SOURCE
-#endif
+# if !defined(__native_client__)
+#   include <features.h>
+# endif
+# ifndef _GNU_SOURCE
+#   define _GNU_SOURCE 1
+# endif
+#endif /* __linux__ */
 
 #if (defined(DGUX) && defined(GC_THREADS) || defined(DGUX386_THREADS) \
      || defined(GC_DGUX386_THREADS)) && !defined(_USING_POSIX4A_DRAFT10)
@@ -1355,15 +1359,16 @@ struct GC_traced_stack_sect_s {
 
 #ifdef USE_MARK_BYTES
 # define mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[n])
-# define set_mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[n] = 1)
-# define clear_mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[n] = 0)
+# define set_mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[n]) = 1
+# define clear_mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[n]) = 0
 #else /* !USE_MARK_BYTES */
-# define mark_bit_from_hdr(hhdr,n) \
-              (((hhdr)->hb_marks[divWORDSZ(n)] >> (modWORDSZ(n))) & (word)1)
+# define mark_bit_from_hdr(hhdr,n) (((hhdr)->hb_marks[divWORDSZ(n)] \
+                            >> (modWORDSZ(n))) & (word)1)
 # define set_mark_bit_from_hdr(hhdr,n) \
-              OR_WORD((hhdr)->hb_marks+divWORDSZ(n), (word)1 << modWORDSZ(n))
-# define clear_mark_bit_from_hdr(hhdr,n) \
-              ((hhdr)->hb_marks[divWORDSZ(n)] &= ~((word)1 << modWORDSZ(n)))
+                            OR_WORD((hhdr)->hb_marks+divWORDSZ(n), \
+                                    (word)1 << modWORDSZ(n))
+# define clear_mark_bit_from_hdr(hhdr,n) (hhdr)->hb_marks[divWORDSZ(n)] \
+                                &= ~((word)1 << modWORDSZ(n))
 #endif /* !USE_MARK_BYTES */
 
 #ifdef MARK_BIT_PER_OBJ
@@ -1380,8 +1385,8 @@ struct GC_traced_stack_sect_s {
 #  define MARK_BIT_OFFSET(sz) BYTES_TO_GRANULES(sz)
 #  define IF_PER_OBJ(x)
 #  define FINAL_MARK_BIT(sz) \
-              ((sz) > MAXOBJBYTES ? MARK_BITS_PER_HBLK \
-                                : BYTES_TO_GRANULES((sz) * HBLK_OBJS(sz)))
+        ((sz) > MAXOBJBYTES? MARK_BITS_PER_HBLK \
+                        : BYTES_TO_GRANULES((sz) * HBLK_OBJS(sz)))
 #endif
 
 /* Important internal collector routines */
@@ -1627,7 +1632,7 @@ GC_INNER void GC_freehblk(struct hblk * p);
 
 /*  Misc GC: */
 GC_INNER GC_bool GC_expand_hp_inner(word n);
-GC_INNER void GC_start_reclaim(GC_bool abort_if_found);
+GC_INNER void GC_start_reclaim(int abort_if_found);
                                 /* Restore unmarked objects to free     */
                                 /* lists, or (if abort_if_found is      */
                                 /* TRUE) report them.                   */