Skip to content
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

Merged
merged 3 commits into from Apr 21, 2018

Conversation

tkreuzer
Copy link
Contributor

Purpose

Add support for versioned spec files in spec2def and add vista exports to kernel32.spec

Copy link
Contributor

@HBelusca HBelusca left a 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;
Copy link
Contributor

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).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't

@tkreuzer tkreuzer self-assigned this Feb 24, 2018
@yagoulas
Copy link
Member

What are you up to Timo?

@tkreuzer
Copy link
Contributor Author

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.

@learn-more
Copy link
Member

This will make it more complicated to make apisets?
Because we will need apisets for each version starting from 7?

Or would the idea be, that the apisets forward to the first version that has a specific function?

@tkreuzer
Copy link
Contributor Author

tkreuzer commented Mar 17, 2018

@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.

@learn-more
Copy link
Member

it means we also have to propagate min/max versions to all spec files.

@tkreuzer
Copy link
Contributor Author

@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.

@encodedpr
Copy link
Contributor

any blockers remain on this PR?

@sanchaez sanchaez added the enhancement For PRs with an enhancement/new feature. label Apr 7, 2018
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.
@tkreuzer tkreuzer merged commit 01ae498 into reactos:master Apr 21, 2018
@tkreuzer tkreuzer deleted the export-versioning-support branch April 22, 2018 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement For PRs with an enhancement/new feature.
Projects
None yet
6 participants