-
Notifications
You must be signed in to change notification settings - Fork 6.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Export rocksdb fuctions in rocksdbjni.dll #12246
base: main
Are you sure you want to change the base?
Conversation
24960c9
to
23e4564
Compare
23e4564
to
9d50374
Compare
451216d
to
33b8098
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
33b8098
to
b02ff8c
Compare
I see the appeal of exporting all the functions as librocksdbjni is almost usable as a general-purpose (non-Java) RocksDB library. But I am not sure we want to encourage or guarantee that usage as the 'j' in librocksdbjni was supposed to stand for Java. Is there precedent for using it for non-Java? |
@ajkr expanding on my comment here - #12226 (comment)
The Linux and macOS libraries for RocksJava have always already included the C++ and C API. This change just makes the Windows RocksJava library on-par with the Linux and macOs ones. |
b02ff8c
to
c17df06
Compare
@ajkr @pdillinger can we get this one merged please? |
c17df06
to
e0b1612
Compare
Would providing a Makefile target to build non-Java static lib with statically linked compression libraries solve their problem? |
@ajkr Possibly. However, regardless, I think we would also like the RocksJava binaries to be equivalent on all platforms (including Windows). |
The inconsistency feels like a difference in linker behavior that only affects off-label uses of the JAR. This kind of inconsistency seems expected to me. So, I am trying to suggest alternatives that may serve the user better and leave behind fewer hacks/semi-officially supported usages. |
e0b1612
to
a063134
Compare
a063134
to
4275c0f
Compare
4275c0f
to
595b6de
Compare
This PR modifies the CMake build process on Windows to export all RocksDB functions in
rocksdbjni.dll
.This allows us to reuse Java builds artifacts in other programming languages without need to manually recompile the .dll for each language.
Closes #12226