
On Mar 26, 2008, at 16:24, David Lutterkort wrote:
This is very strange since the NORETURN macro is defined by ruby-devel (for gcc it amounts to __attribute__((noreturn)) )
I just checked in my RHEL5 build root, and it's set to a noop in ruby.h if it is not defined by config.h
This is with ruby-devel-1.8.5-5.el5 .. which version of ruby-devel are you using ? Can you grep for NORETURN in ruby.h and config.h ? They are in /usr/lib/ruby/1.8/i386-linux
# rpm -q ruby-devel ruby-devel-1.8.5-5.el5_1.1 # grep NORETURN /usr/lib/ruby/1.8/i386-linux/ruby.h /usr/lib/ruby/1.8/ i386-linux/config.h /usr/lib/ruby/1.8/i386-linux/ruby.h:#define NORETURN_STYLE_NEW 1 /usr/lib/ruby/1.8/i386-linux/ruby.h:#ifndef NORETURN /usr/lib/ruby/1.8/i386-linux/ruby.h:# define NORETURN(x) x /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_raise __((VALUE, const char*, ...))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_fatal __((const char*, ...))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_bug __((const char*, ...))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_sys_fail _((const char*))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_iter_break _((void))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_exit _((int))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_notimplement _((void))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void rb_throw _((const char*,VALUE))); /usr/lib/ruby/1.8/i386-linux/ruby.h:NORETURN(void ruby_run _((void))); /usr/lib/ruby/1.8/i386-linux/config.h:#define NORETURN(x) x __attribute__ ((noreturn)) Sincerely, Vadim