diff options
Diffstat (limited to 'ext/digest')
-rw-r--r-- | ext/digest/defs.h | 2 | ||||
-rw-r--r-- | ext/digest/sha2/extconf.rb | 16 |
2 files changed, 12 insertions, 6 deletions
diff --git a/ext/digest/defs.h b/ext/digest/defs.h index 47bf7d030a..7af8f52324 100644 --- a/ext/digest/defs.h +++ b/ext/digest/defs.h @@ -27,7 +27,7 @@ # elif defined(_MSC_VER) typedef unsigned _int64 uint64_t; # else -# error What is a 64bit integer type on this system? +# define NO_UINT64_T # endif #endif diff --git a/ext/digest/sha2/extconf.rb b/ext/digest/sha2/extconf.rb index 144f266b20..412b2d4301 100644 --- a/ext/digest/sha2/extconf.rb +++ b/ext/digest/sha2/extconf.rb @@ -17,12 +17,18 @@ have_header("inttypes.h") have_header("unistd.h") -unless try_link(<<SRC, $defs.join(' ')) +if try_run(<<SRC, $defs.join(' ')) #include "../defs.h" -main(){} +int main(void) { +#ifdef NO_UINT64_T + return 1; +#else + return 0; +#endif +} SRC +then + create_makefile("digest/sha2") +else puts "** Cannot find a 64bit integer type - skipping the SHA2 module." - exit 1 end - -create_makefile("digest/sha2") |