From 25b45e3e66d80f30bb6ca24414d73f261c8d7830 Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Sep 05 2006 07:37:24 +0000 Subject: - ruby-1.8.5-hash-memory-leak.patch: backported from CVS to fix a memory leak on Hash. [ruby-talk:211233] --- diff --git a/ruby-1.8.5-hash-memory-leak.patch b/ruby-1.8.5-hash-memory-leak.patch new file mode 100644 index 0000000..331ab34 --- /dev/null +++ b/ruby-1.8.5-hash-memory-leak.patch @@ -0,0 +1,48 @@ +diff -ruN ruby-1.8.5.orig/hash.c ruby-1.8.5/hash.c +--- ruby-1.8.5.orig/hash.c 2006-07-07 00:44:26.000000000 +0900 ++++ ruby-1.8.5/hash.c 2006-08-30 15:50:31.000000000 +0900 +@@ -223,20 +223,31 @@ + rb_ensure(hash_foreach_call, (VALUE)&arg, hash_foreach_ensure, hash); + } + ++static VALUE hash_alloc0 _((VALUE)); + static VALUE hash_alloc _((VALUE)); + static VALUE +-hash_alloc(klass) ++hash_alloc0(klass) + VALUE klass; + { + NEWOBJ(hash, struct RHash); + OBJSETUP(hash, klass, T_HASH); + + hash->ifnone = Qnil; +- hash->tbl = st_init_table(&objhash); + + return (VALUE)hash; + } + ++static VALUE ++hash_alloc(klass) ++ VALUE klass; ++{ ++ VALUE hash = hash_alloc0(klass); ++ ++ RHASH(hash)->tbl = st_init_table(&objhash); ++ ++ return hash; ++} ++ + VALUE + rb_hash_new() + { +@@ -325,9 +336,7 @@ + int i; + + if (argc == 1 && TYPE(argv[0]) == T_HASH) { +- hash = hash_alloc(klass); +- +- RHASH(hash)->ifnone = Qnil; ++ hash = hash_alloc0(klass); + RHASH(hash)->tbl = st_copy(RHASH(argv[0])->tbl); + + return hash; diff --git a/ruby.spec b/ruby.spec index 8627f25..82c5884 100644 --- a/ruby.spec +++ b/ruby.spec @@ -26,6 +26,7 @@ Source5: irb.1 Source10: ruby-mode-init.el Patch1: ruby-1.8.2-deadcode.patch +Patch2: ruby-1.8.5-hash-memory-leak.patch Patch20: ruby-rubyprefix.patch Patch21: ruby-deprecated-sitelib-search-path.patch Patch22: ruby-deprecated-search-path.patch @@ -142,6 +143,7 @@ tar fxz %{SOURCE2} popd pushd %{name}-%{version} %patch1 -p1 +%patch2 -p1 %patch20 -p1 %patch21 -p1 %ifarch ppc64 s390x sparc64 x86_64 @@ -161,7 +163,7 @@ autoconf rb_cv_func_strtod=no export rb_cv_func_strtod -CFLAGS="$RPM_OPT_FLAGS -Wall -fno-strict-aliasing" +CFLAGS="$RPM_OPT_FLAGS -Wall" export CFLAGS %configure \ --with-sitedir='%{sitedir}' \ @@ -285,15 +287,16 @@ done # done cd .. -# generate ri doc -make -C $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} RUNRUBY="\$(MINIRUBY) \$(srcdir)/runruby.rb --extout=\$(EXTOUT) --" DESTDIR=$RPM_BUILD_ROOT install-doc -#DESTDIR=$RPM_BUILD_ROOT LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_bindir}/ruby -I $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} -I $RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/$_cpu-%{_target_os}/ -I $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version}/lib $RPM_BUILD_ROOT%{_bindir}/rdoc --all --ri-system $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} - # installing binaries ... make -C $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} DESTDIR=$RPM_BUILD_ROOT install _cpu=`echo %{_target_cpu} | sed 's/^ppc/powerpc/'` +# generate ri doc +rubybuilddir=$RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} +LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} RUBYLIB=$RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}:$RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/$_cpu-%{_target_os} make -C $rubybuilddir DESTDIR=$RPM_BUILD_ROOT install-doc +#DESTDIR=$RPM_BUILD_ROOT LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_bindir}/ruby -I $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} -I $RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/$_cpu-%{_target_os}/ -I $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version}/lib $RPM_BUILD_ROOT%{_bindir}/rdoc --all --ri-system $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} + %{__mkdir_p} $RPM_BUILD_ROOT%{sitedir2}/%{rubyxver} %{__mkdir_p} $RPM_BUILD_ROOT%{sitedir}/%{rubyxver}/$_cpu-%{_target_os} @@ -465,6 +468,8 @@ rm -rf tmp-ruby-docs - ruby-1.8.4-fix-insecure-regexp-modification.patch - ruby-1.8.4-fix-alias-safe-level.patch - build with --enable-pthread except on ppc. +- ruby-1.8.5-hash-memory-leak.patch: backported from CVS to fix a memory leak + on Hash. [ruby-talk:211233] * Mon Aug 7 2006 Akira TAGOH - 1.8.4-12 - owns sitearchdir. (#201208)