-
Notifications
You must be signed in to change notification settings - Fork 4k
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
THRIFT-4759:add thrift export to fix windows shared lib building #1714
Conversation
This PR is same with #1713. |
We're moving towards cmake but it's going to take a while to get everything that autoconf does for us working in cmake... in the meantime thanks for both. The "make dist" job in Travis CI failed and it looks related. |
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.
Long term, we really should put THRIFT_EXPORT on all classes, and disable global visibility on unixy builds like boost does, that way unix and windows are playing the same export game.
I forgot to change autotool scripts,I will re-push it. |
@jeking3 by the way,are there any plans to merge fbthrift code? |
That is a huge work,and I found little UNIX/Linux cpp projects limiting symbol visibility.It is a good idea except to make code a little ugly. |
Boost leads the way in terms of correctness here, just a suggestion for long term. |
I think I prefer the other PR for this issue. We don't use autoconf for any build that needs dllimport/export - we only use cmake. Therefore a cmake-centric solution is appropriate, especially if nobody wants to tackle symbol visibility on non-windows systems right now. |
|
fbthrift code changes would need to be submitted by the fbthrift team. We cannot pull them in. |
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.
Please change the MSVC2017 build job in appveyor to build shared.
Also rebase on master which is more stable... I fixed the concurrency_test. |
Looking forward, thanks! |
wait for a moment. |
just rebase on master.I am not familiar with appveyor scripts. |
In the file appveyor.yml there is a directive that sets the MSVC 2017 build to static. Change it. None of the windows MSVC build tested your changes because both of them disable shared library builds. |
fixed |
This PR throws the following warning in MSVC: |
@cyyever @jeking3 wouldn't it have been more convenient to move the TSSLSocketFactory::setManualOpenSSLInitialization's body to cpp rather than explicitly exporting the variable ? (see https://stackoverflow.com/questions/2479784/exporting-static-data-in-a-dll) |
add thrift export to fix windows shared lib building