-
-
Notifications
You must be signed in to change notification settings - Fork 245
Explicitly default the expected Windows API to 0x0601 (Windows 7) #8680
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
Explicitly default the expected Windows API to 0x0601 (Windows 7) #8680
Conversation
Note that defaulting to Windows 10 (0x0A00) just formalizes and makes explicit what already happens inside the Windows 10 API headers when I have considered setting the yvalve project (fbclient) to explicitly use a lower |
I'm not sure it should be done this way. Ideally,
This define will not make anything compatible with Win7. It doesn't affect CRT code, for example. Also, fbclient is not build from the single project. I.e. I support removal of current define's (3 or 4 places, iirc) but don't think we must explicitly set |
Also, I see no need to change LibCDS as any other external library. At least until it builds. |
I agree it should be set to the minimum value that we expect it to compile, and I think that is the version that we want to support, or want to be able to support. I asked for input on firebird-devel, and the only response I got was from Paul, so I simply decided to put in the default that we're currently already using by way of how the Windows API decides if you do not explicitly specify it! If that should be a lower value, then so be it, I can change it to a lower value.
As I understand it, yvalve depends on the projects it needs but not on their build outputs, so I expect that will cause those projects to be built as needed using the configuration for the yvalve, but maybe I'm misunderstanding how msbuild works there.
We should explicitly set Sure, setting it to Windows 10 might be "too high", but then suggest which version we should target. |
As I mentioned on firebird-devel, LibCDS has some conditional code that does some detection or initialization differently for Windows Vista and higher, and for Windows 7 and higher, so raising it from some targets Windows 2000, some targets Windows XP to all targets Windows 7 seems rational to me. Let me know if you want me to revert it. |
Note value of Link Library Dependencies setting (true).
0x0601 (Win7), I think. |
After more close look at the LibCDS code and tend to agree with you here. |
bb34496
to
1074640
Compare
b46c3ae
to
6c78c50
Compare
Can this be merged, @asfernandes @hvlad ? |
* Reject versions before Windows 7 (0x0601) * Ensure firebird.h is included first to avoid translation units unexpectedly using a different version or other config than defined in firebird.h * Also raise libcds expected Windows API to Windows 7 (0x601) instead of Windows 2000 (0x0500)/Windows XP (0x501)
6c78c50
to
64469d4
Compare
Explicitly default the expected Windows API to 0x0601 (Windows 7)
Also: