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 versioning support #397
Conversation
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.
Does that mean that our kernel32_vista may in the very near future be incorporated back into our existing kernel32?
@@ -49,6 +49,7 @@ char *pszSourceFileName = NULL; | |||
char *pszDllName = NULL; | |||
char *gpszUnderscore = ""; | |||
int gbDebug; | |||
unsigned guOsVersion = 0x502; |
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.
Don't we have the _WIN32_WINNT macros available also for the host-tools? (you would specify an explicit _WIN32_WINNT_WS03 here for example).
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.
We don't
What are you up to Timo? |
The idea is to allow building sets of "wrapper DLLs", one for each OS version. They all forward their exports to a base version (like "roskernelbase.dll") except for those that need special handling. All this can be done without creating half a dozen of copies of the spec file. |
This will make it more complicated to make apisets? Or would the idea be, that the apisets forward to the first version that has a specific function? |
@learn-more Why would it make apisets more complicated? If we implement all functions for all versions in a core-dll, then all apiset dlls can forward to that directly. It would make it easier, since you don't need to write a separate spec file for each version. |
it means we also have to propagate min/max versions to all spec files. |
@learn-more Only when adding new exports, otherwise why would you need that? The default is win2k3, so without adding any Vista+ exports everything is exactly as before. |
any blockers remain on this PR? |
c7a1b57
to
735f87d
Compare
Using static numbers was a bad idea in the first place, since we already deal with x64, which has different ordinals. Also @ will automatically do the same thing! It does not mean "no ordinal", it only means automatically apply incrementing numbers.
735f87d
to
f5ca389
Compare
Purpose
Add support for versioned spec files in spec2def and add vista exports to kernel32.spec