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