1 diff -aur ruby-1.8.6.orig/Makefile.in ruby-1.8.6/Makefile.in
2 --- ruby-1.8.6.orig/Makefile.in 2007-02-13 00:01:19.000000000 +0100
3 +++ ruby-1.8.6/Makefile.in 2007-03-12 22:34:13.553865125 +0100
7 OUTFLAG = @OUTFLAG@$(empty)
8 -CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@
9 +CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@ @VALGRIND_CFLAGS@
10 CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@
11 LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
13 Only in ruby-1.8.6: aclocal.m4
14 Only in ruby-1.8.6: autom4te.cache
15 diff -aur ruby-1.8.6.orig/configure ruby-1.8.6/configure
16 --- ruby-1.8.6.orig/configure 2007-03-12 20:19:03.000000000 +0100
17 +++ ruby-1.8.6/configure 2007-03-12 22:36:40.826257700 +0100
39 # Initialize some variables set by options.
41 --enable-pthread use pthread library.
42 --disable-fastthread do not use the fastthread mutex
43 --enable-setreuid use setreuid()/setregid() according to need even if obsolete.
44 + --enable-valgrind use valgrind support.
45 --disable-rpath embed run path into extension libraries.
46 --enable-shared build a shared library for Ruby.
47 --enable-install-doc build and install rdoc indexes during install
48 @@ -1387,6 +1394,11 @@
49 YFLAGS The list of arguments that will be passed by default to $YACC.
50 This script will default YFLAGS to the empty string to avoid a
51 default value of `-d' given by some make applications.
52 + PKG_CONFIG path to pkg-config utility
54 + C compiler flags for VALGRIND, overriding pkg-config
56 + linker flags for VALGRIND, overriding pkg-config
58 Use these variables to override the choices made by `configure' or to help
59 it to find libraries and programs with nonstandard names/locations.
60 @@ -12983,13 +12995,11 @@
61 cat confdefs.h >>conftest.$ac_ext
62 cat >>conftest.$ac_ext <<_ACEOF
64 -#include <sys/types.h> /* for off_t */
70 -int (*fp) (FILE *, off_t, int) = fseeko;
71 - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
72 +return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
76 @@ -13029,13 +13039,11 @@
77 cat >>conftest.$ac_ext <<_ACEOF
79 #define _LARGEFILE_SOURCE 1
80 -#include <sys/types.h> /* for off_t */
86 -int (*fp) (FILE *, off_t, int) = fseeko;
87 - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
88 +return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
92 @@ -15762,6 +15770,219 @@
96 +# Check whether --enable-valgrind was given.
97 +if test "${enable_valgrind+set}" = set; then
98 + enableval=$enable_valgrind; want_valgrind=$enableval
104 +if test x"$want_valgrind" != xno; then
107 +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
108 + if test -n "$ac_tool_prefix"; then
109 + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
110 +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
111 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5
112 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
113 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
114 + echo $ECHO_N "(cached) $ECHO_C" >&6
116 + case $PKG_CONFIG in
118 + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
121 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
125 + test -z "$as_dir" && as_dir=.
126 + for ac_exec_ext in '' $ac_executable_extensions; do
127 + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
128 + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
129 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
139 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
140 +if test -n "$PKG_CONFIG"; then
141 + { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
142 +echo "${ECHO_T}$PKG_CONFIG" >&6; }
144 + { echo "$as_me:$LINENO: result: no" >&5
145 +echo "${ECHO_T}no" >&6; }
150 +if test -z "$ac_cv_path_PKG_CONFIG"; then
151 + ac_pt_PKG_CONFIG=$PKG_CONFIG
152 + # Extract the first word of "pkg-config", so it can be a program name with args.
153 +set dummy pkg-config; ac_word=$2
154 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5
155 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
156 +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
157 + echo $ECHO_N "(cached) $ECHO_C" >&6
159 + case $ac_pt_PKG_CONFIG in
161 + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
164 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
168 + test -z "$as_dir" && as_dir=.
169 + for ac_exec_ext in '' $ac_executable_extensions; do
170 + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
171 + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
172 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
182 +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
183 +if test -n "$ac_pt_PKG_CONFIG"; then
184 + { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
185 +echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
187 + { echo "$as_me:$LINENO: result: no" >&5
188 +echo "${ECHO_T}no" >&6; }
191 + if test "x$ac_pt_PKG_CONFIG" = x; then
194 + case $cross_compiling:$ac_tool_warned in
196 +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
197 +whose name does not start with the host triplet. If you think this
198 +configuration is useful to you, please write to autoconf@gnu.org." >&5
199 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
200 +whose name does not start with the host triplet. If you think this
201 +configuration is useful to you, please write to autoconf@gnu.org." >&2;}
202 +ac_tool_warned=yes ;;
204 + PKG_CONFIG=$ac_pt_PKG_CONFIG
207 + PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
211 +if test -n "$PKG_CONFIG"; then
212 + _pkg_min_version=0.9.0
213 + { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
214 +echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; }
215 + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
216 + { echo "$as_me:$LINENO: result: yes" >&5
217 +echo "${ECHO_T}yes" >&6; }
219 + { echo "$as_me:$LINENO: result: no" >&5
220 +echo "${ECHO_T}no" >&6; }
227 +{ echo "$as_me:$LINENO: checking for VALGRIND" >&5
228 +echo $ECHO_N "checking for VALGRIND... $ECHO_C" >&6; }
230 +if test -n "$PKG_CONFIG"; then
231 + if test -n "$VALGRIND_CFLAGS"; then
232 + pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS"
234 + if test -n "$PKG_CONFIG" && \
235 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"valgrind\"") >&5
236 + ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5
238 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
239 + (exit $ac_status); }; then
240 + pkg_cv_VALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind" 2>/dev/null`
248 +if test -n "$PKG_CONFIG"; then
249 + if test -n "$VALGRIND_LIBS"; then
250 + pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS"
252 + if test -n "$PKG_CONFIG" && \
253 + { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"valgrind\"") >&5
254 + ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5
256 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
257 + (exit $ac_status); }; then
258 + pkg_cv_VALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind" 2>/dev/null`
269 +if test $pkg_failed = yes; then
271 +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
272 + _pkg_short_errors_supported=yes
274 + _pkg_short_errors_supported=no
276 + if test $_pkg_short_errors_supported = yes; then
277 + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "valgrind"`
279 + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "valgrind"`
281 + # Put the nasty error message in config.log where it belongs
282 + echo "$VALGRIND_PKG_ERRORS" >&5
284 + { echo "$as_me:$LINENO: result: no" >&5
285 +echo "${ECHO_T}no" >&6; }
287 +elif test $pkg_failed = untried; then
290 + VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS
291 + VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS
292 + { echo "$as_me:$LINENO: result: yes" >&5
293 +echo "${ECHO_T}yes" >&6; }
297 + if test x"$have_valgrind" = xyes; then
298 + cat >>confdefs.h <<\_ACEOF
299 +#define HAVE_VALGRIND 1
302 + elif test x"$want_valgrind" = xyes -a x"$have_valgrind" = xno; then
303 + { { echo "$as_me:$LINENO: error: valgrind support requested but valgrind not found" >&5
304 +echo "$as_me: error: valgrind support requested but valgrind not found" >&2;}
305 + { (exit 1); exit 1; }; }
309 DEFAULT_KCODE="KCODE_NONE"
312 @@ -17796,6 +18017,9 @@
313 MAKEDIRS!$MAKEDIRS$ac_delim
314 LIBOBJS!$LIBOBJS$ac_delim
315 ALLOCA!$ALLOCA$ac_delim
316 +PKG_CONFIG!$PKG_CONFIG$ac_delim
317 +VALGRIND_CFLAGS!$VALGRIND_CFLAGS$ac_delim
318 +VALGRIND_LIBS!$VALGRIND_LIBS$ac_delim
319 DLDFLAGS!$DLDFLAGS$ac_delim
320 ARCH_FLAG!$ARCH_FLAG$ac_delim
321 STATIC!$STATIC$ac_delim
322 @@ -17805,9 +18029,6 @@
323 DLEXT2!$DLEXT2$ac_delim
324 LIBEXT!$LIBEXT$ac_delim
325 LINK_SO!$LINK_SO$ac_delim
326 -LIBPATHFLAG!$LIBPATHFLAG$ac_delim
327 -RPATHFLAG!$RPATHFLAG$ac_delim
328 -LIBPATHENV!$LIBPATHENV$ac_delim
331 if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
332 @@ -17849,6 +18070,9 @@
334 for ac_last_try in false false false false false :; do
335 cat >conf$$subs.sed <<_ACEOF
336 +LIBPATHFLAG!$LIBPATHFLAG$ac_delim
337 +RPATHFLAG!$RPATHFLAG$ac_delim
338 +LIBPATHENV!$LIBPATHENV$ac_delim
339 TRY_LINK!$TRY_LINK$ac_delim
340 STRIP!$STRIP$ac_delim
341 EXTSTATIC!$EXTSTATIC$ac_delim
342 @@ -17893,7 +18117,7 @@
343 LTLIBOBJS!$LTLIBOBJS$ac_delim
346 - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 42; then
347 + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 45; then
349 elif $ac_last_try; then
350 { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
351 diff -aur ruby-1.8.6.orig/configure.in ruby-1.8.6/configure.in
352 --- ruby-1.8.6.orig/configure.in 2007-02-28 14:23:42.000000000 +0100
353 +++ ruby-1.8.6/configure.in 2007-03-12 22:34:52.828103236 +0100
358 +AC_ARG_ENABLE(valgrind,
359 + [ --enable-valgrind use valgrind support.],
360 + [want_valgrind=$enableval], [want_valgrind=auto])
362 +if test x"$want_valgrind" != xno; then
363 + PKG_CHECK_MODULES(VALGRIND, valgrind, have_valgrind=yes, have_valgrind=no)
365 + if test x"$have_valgrind" = xyes; then
366 + AC_DEFINE(HAVE_VALGRIND)
367 + elif test x"$want_valgrind" = xyes -a x"$have_valgrind" = xno; then
368 + AC_MSG_ERROR(valgrind support requested but valgrind not found)
372 dnl default value for $KANJI
373 DEFAULT_KCODE="KCODE_NONE"
375 diff -aur ruby-1.8.6.orig/gc.c ruby-1.8.6/gc.c
376 --- ruby-1.8.6.orig/gc.c 2007-03-03 08:30:46.000000000 +0100
377 +++ ruby-1.8.6/gc.c 2007-03-12 22:36:25.201367287 +0100
382 +#ifdef HAVE_VALGRIND
383 +#include <memcheck.h>
385 +#define VALGRIND_MAKE_MEM_DEFINED(p, n) /* empty */
388 void re_free_registers _((struct re_registers*));
389 void rb_io_fptr_finalize _((struct OpenFile*));
396 + VALGRIND_MAKE_MEM_DEFINED(x, sizeof(*x) * n);
400 if (is_pointer_to_heap((void *)v)) {
403 register RVALUE *obj;
405 + VALGRIND_MAKE_MEM_DEFINED(&ptr, sizeof(ptr));
407 + VALGRIND_MAKE_MEM_DEFINED(obj, sizeof(*obj));
409 if (rb_special_const_p(ptr)) return; /* special const not marked */
410 if (obj->as.basic.flags == 0) return; /* free cell */
411 if (obj->as.basic.flags & FL_MARK) return; /* already marked */