From a2d0fe8a5c2ff894b8c56104fc0b32574bf0df72 Mon Sep 17 00:00:00 2001 From: mahlon Date: Thu, 20 Feb 2025 22:11:51 +0000 Subject: [PATCH] Don't fail compiling against pre 0.13 versions. I mostly want this library to remain in lockstep with what is considered the stable version of libmdbx, and if you require a past version, just pin it. In this case however, the breakage outweighs adding a simple compatibility check. Closes 1f1f5e4c44188a9cd1d9f83fd8fdb1afe3dd7e29. FossilOrigin-Name: 89b49806a28078e58b3c93f5fee2ff11290405a9c4b42ba11a4412d73eafd8aa --- ext/mdbx_ext/database.c | 5 +++++ ext/mdbx_ext/extconf.rb | 2 ++ 2 files changed, 7 insertions(+) diff --git a/ext/mdbx_ext/database.c b/ext/mdbx_ext/database.c index 93d3ad3..9d6fe7a 100644 --- a/ext/mdbx_ext/database.c +++ b/ext/mdbx_ext/database.c @@ -805,8 +805,13 @@ rmdbx_database_initialize( int argc, VALUE *argv, VALUE self ) if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NOSUBDIR; opt = rb_hash_delete( opts, ID2SYM( rb_intern("no_readahead") ) ); if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NORDAHEAD; +#if defined(HAVE_CONST_MDBX_NOSTICKYTHREADS) opt = rb_hash_delete( opts, ID2SYM( rb_intern("no_stickythreads") ) ); if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NOSTICKYTHREADS; +#else + opt = rb_hash_delete( opts, ID2SYM( rb_intern("no_threadlocal") ) ); + if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_NOTLS; +#endif opt = rb_hash_delete( opts, ID2SYM( rb_intern("readonly") ) ); if ( RTEST(opt) ) db->settings.env_flags = db->settings.env_flags | MDBX_RDONLY; opt = rb_hash_delete( opts, ID2SYM( rb_intern("writemap") ) ); diff --git a/ext/mdbx_ext/extconf.rb b/ext/mdbx_ext/extconf.rb index f266102..f07d24b 100755 --- a/ext/mdbx_ext/extconf.rb +++ b/ext/mdbx_ext/extconf.rb @@ -9,6 +9,8 @@ $CFLAGS << ' -Wno-unknown-warning-option' have_library( 'mdbx' ) or abort "No mdbx library!" have_header( 'mdbx.h' ) or abort "No mdbx.h header!" +have_const( 'MDBX_NOSTICKYTHREADS', 'mdbx.h' ) + create_header() create_makefile( 'mdbx_ext' )