diff --git a/ChangeLog b/ChangeLog index 109706f51c..3d84f90fe1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Jan 19 17:25:17 2009 Nobuyoshi Nakada + + * include/ruby/defines.h (RUBY_ALIAS_FUNCTION2): added. + +Mon Jan 19 17:24:05 2009 Nobuyoshi Nakada + + * vm_dump.c (vm_stack_dump_each): used only if debug mode. + Mon Jan 19 16:32:35 2009 Nobuyoshi Nakada * string.c (hash): added MurmurHash 2.0. diff --git a/configure.in b/configure.in index 264903ea3f..6f5a33695b 100644 --- a/configure.in +++ b/configure.in @@ -472,12 +472,11 @@ if test "$GCC" = yes; then void bar(void) __attribute__(($a("foo")));], [bar()], [rb_cv_gcc_function_alias=$a; break]) done]) - if test "$rb_cv_gcc_function_alias" = no; then - AC_DEFINE([RUBY_ALIAS_FUNCTION(old_prot, new_name, args)], - [VALUE old_prot {return new_name args;}]) - else - AC_DEFINE_UNQUOTED([RUBY_ALIAS_FUNCTION(old_prot, new_name, args)], - [VALUE old_prot __attribute__(($rb_cv_gcc_function_alias(@%:@new_name)));]) + if test "$rb_cv_gcc_function_alias" != no; then + AC_DEFINE_UNQUOTED([RUBY_ALIAS_FUNCTION2(type, prot, name, args)], + [type prot __attribute__(($rb_cv_gcc_function_alias(@%:@name)));]) + AC_DEFINE_UNQUOTED([RUBY_ALIAS_FUNCTION_VOID(prot, name, args)], + [RUBY_ALIAS_FUNCTION2(void, prot, name, args)]) fi fi diff --git a/include/ruby/defines.h b/include/ruby/defines.h index 0b870db137..97806b7d0a 100644 --- a/include/ruby/defines.h +++ b/include/ruby/defines.h @@ -266,9 +266,17 @@ void rb_ia64_flushrs(void); #define RUBY_PLATFORM "unknown-unknown" #endif +#ifndef RUBY_ALIAS_FUNCTION2 +#define RUBY_ALIAS_FUNCTION2(type, prot, name, args) \ + type prot {return name args;} +#endif +#ifndef RUBY_ALIAS_FUNCTION_VOID +#define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) \ + void prot {name args;} +#endif #ifndef RUBY_ALIAS_FUNCTION -#define RUBY_ALIAS_FUNCTION(old_prot, new_name, args) \ - VALUE old_prot {return new_name args;} +#define RUBY_ALIAS_FUNCTION(prot, name, args) \ + RUBY_ALIAS_FUNCTION2(VALUE, prot, name, args) #endif #if defined(__cplusplus)