diff --git a/ChangeLog b/ChangeLog index 863e3094ac..e2ef18565c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Jun 5 15:26:10 2013 NARUSE, Yui + + * gc.c (before_gc_sweep): don't optimize it to avoid segv on Ubuntu + 10.04 gcc 4.4. + http://u32.rubyci.org/~chkbuild/ruby-trunk/log/20130527T190301Z.diff.html.gz + Wed Jun 5 09:46:46 2013 NARUSE, Yui * test/fileutils/test_fileutils.rb (TestFileUtils#test_mkdir): add diff --git a/gc.c b/gc.c index f3fb37207b..6e56e11022 100644 --- a/gc.c +++ b/gc.c @@ -2276,6 +2276,10 @@ ready_to_gc(rb_objspace_t *objspace) return TRUE; } +#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 4 +# pragma GCC push_options +# pragma GCC optimize ("O0") +#endif static void before_gc_sweep(rb_objspace_t *objspace) { @@ -2297,6 +2301,9 @@ before_gc_sweep(rb_objspace_t *objspace) rb_sweep_method_entry(GET_VM()); } } +#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 4 +# pragma GCC pop_options +#endif static void after_gc_sweep(rb_objspace_t *objspace)