From: Jeremy Henty Date: 2007-07-31T02:24:59+09:00 Subject: Re: BUG(?): 1.8.6-p36 broke compiling C++ extensions On 2007-07-30, Jeremy Henty (ie. me) wrote: > Upgrading 1.8.6 to 1.8.6-p36 has stopped C++ extensions from > compiling. OK, the problem is that g++ requires you to declare enum's before using them and 1.8.6-p36 added some declarations to intern.h that use an enum defined in node.h . Everything works OK (as far as I can tell) if I patch intern.h to #include node.h . (Patch supplied at the end.) Is there any way to work around this without patching Ruby? I can't find one so far. Regards, Jeremy Henty diff -ur -- 0/intern.h 1/intern.h --- 0/intern.h 2007-06-07 13:40:01.000000000 +0100 +++ 1/intern.h 2007-07-30 17:36:54.972409368 +0100 @@ -19,6 +19,8 @@ #define ID_ALLOCATOR 1 +#include "node.h" + /* array.c */ void rb_mem_clear _((register VALUE*, register long)); VALUE rb_assoc_new _((VALUE, VALUE));