Hi,

At Mon, 18 Sep 2006 01:06:07 +0900,
Bil Kleb wrote in [ruby-talk:214856]:
> > RFILE seems redefined somewhere after here.
> 
> But I can't find another RFILE in /ext/openssl or below...

`Somewhere' inside <openssl/*.h> below it.

>   $ cd /ext/openssl && grep -nr RFILE *
>   ossl.h:21:* OpenSSL has defined RFILE and Ruby has defined RFILE - so undef it!
>   ossl.h:23:#if defined(RFILE) /*&& !defined(OSSL_DEBUG)*/
>   ossl.h:24:#  undef RFILE
> 
> Suggestions?

Moving the code block after #include lines of openssl.  Try
this patch.


Index: ext/openssl/ossl.h =================================================================== RCS file: /cvs/ruby/src/ruby/ext/openssl/ossl.h,v retrieving revision 1.14.2.4 diff -p -u -2 -r1.14.2.4 ossl.h --- ext/openssl/ossl.h 27 Jul 2006 07:45:33 -0000 1.14.2.4 +++ ext/openssl/ossl.h 18 Sep 2006 02:49:17 -0000 @@ -16,14 +16,13 @@ #if defined(__cplusplus) extern "C" { +#elif 0 +} #endif /* -* OpenSSL has defined RFILE and Ruby has defined RFILE - so undef it! -*/ -#if defined(RFILE) /*&& !defined(OSSL_DEBUG)*/ -# undef RFILE -#endif -#include <ruby.h> -#include <rubyio.h> + *_FILE_OFFSET_BITS needs to be defined before some system headers on + * Solaris. + */ +#include "config.h" /* @@ -70,4 +69,13 @@ extern "C" { /* +* OpenSSL has defined RFILE and Ruby has defined RFILE - so undef it! +*/ +#if defined(RFILE) /*&& !defined(OSSL_DEBUG)*/ +# undef RFILE +#endif +#include <ruby.h> +#include <rubyio.h> + +/* * Common Module */ @@ -212,5 +220,7 @@ void ossl_debug(const char *, ...); void Init_openssl(void); -#if defined(__cplusplus) +#if 0 +{ +#elif defined(__cplusplus) } #endif
-- Nobu Nakada