-
Notifications
You must be signed in to change notification settings - Fork 6.2k
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
travis: add Windows cross-compilation #2107
Conversation
@yiwu-arbug has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator. |
@yiwu-arbug any comments I can address? |
@yuslepukhin Is this okay to merge? Thanks! |
Ping. |
Hello? This is absolutely necessary for cross compilation. |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@tamird updated the pull request - view changes - changes since last import |
@siying this now successfully cross compiles on Travis. Could you please take a look? |
@tamird updated the pull request - view changes - changes since last import |
Travis failed with something unrelated, I think. Otherwise, this is green (previous iteration failed appveyor, but that's fixed now). |
- downcase includes for case-sensitive filesystems - give targets the same name (librocksdb) on all platforms - check localtime_r error return - avoid shadowing use_direct_io
@tamird updated the pull request - view changes - changes since last import |
@siying has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator. |
@tamird @siying Unfortunately I think this has broken the Windows build. I opened an issue here - #2293. Using @tamird I would like to get your thoughts on this before I jump in any deeper please... |
@tamird Just to follow-up, I believe the issue is specifically here: https://github.com/facebook/rocksdb/pull/2107/files#diff-af3b638bc2a3e6c650974192a53c7291L511 Previously on Windows the static RocksDB lib was named like:
but you changed that to:
However, elsewhere, in I will test with changing that to match |
Ah, so sorry about that! Perhaps we should add the Java build to Travis as
well. Thank you for looking into this!
…On May 14, 2017 17:39, "Adam Retter" ***@***.***> wrote:
@tamird <https://github.com/tamird> Just to follow-up, I believe the
issue is specifically here: https://github.com/facebook/
rocksdb/pull/2107/files#diff-af3b638bc2a3e6c650974192a53c7291L511
Previously on Windows the static RocksDB lib was named like:
set(ROCKSDB_STATIC_LIB rocksdblib${ARTIFACT_SUFFIX})
but you changed that to:
set(ROCKSDB_STATIC_LIB rocksdb${ARTIFACT_SUFFIX})
However, elsewhere, in java/CMakeLists.txt it still expects
rocksdblib${ARTIFACT_SUFFIX}, i.e. https://github.com/facebook/
rocksdb/blob/master/java/CMakeLists.txt#L202
I will test with changing that to match set(ROCKSDB_STATIC_LIB
rocksdb${ARTIFACT_SUFFIX}) and see if it works...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2107 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABdsPNuOhT8GXJpwcgHgq9Ml1FOQqPepks5r53SWgaJpZM4M2Y7A>
.
|
@tamird I made the change and it seems to work, so I have submitted a small PR for that. I am not quite sure how mingw-w64 works as I have never used it. I would like to see rocksjavastatic build on Travis for Windows using mingw-w64 though. Would you be able to send a PR? |
@tamird What does mingw cover that our the appveyor test does not already do? https://github.com/facebook/rocksdb/blob/master/appveyor.yml |
Cross-compilation. |
Can you explain more? I do not see any related discussion at when this test was added and there is no proper documentation of why it should remain. |
What would you like me to explain? The test checks that it is possible to compile rocksdb with mingw as that is the toolchain used to cross compile programs from Linux to Windows. |
You mean a source might successfully compile on windows but not by mingw on linux? |
Yes. One example pitfall is case sensitivity; this patch downcased
several includes for this reason. I believe this is all documented in the
commit messages.
…On Jan 23, 2018 17:16, "Maysam Yabandeh" ***@***.***> wrote:
You mean a source might successfully compile on windows but not by mingw
on linux?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2107 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABdsPJMN_wCzBwT898Ezjj3wJ28L0LN6ks5tNlpJgaJpZM4M2Y7A>
.
|
With this patch it is possible to cross-compile RocksDB for Windows
from a Linux host using mingw.
cc @yuslepukhin @orgads