-
Notifications
You must be signed in to change notification settings - Fork 36
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
64 bit proxy DLL for fat MSVC builds of MPIR #19
base: master
Are you sure you want to change the base?
Conversation
Oh wow! That's a pretty good idea! |
It's a completely separate solution/project so I don't think it is included in the current MPIR build checks. Yes it works :-). Enjoy! |
Thank you for offering this contribution, which I believe that many users of MPIR on WIndows will appreciate. But it is not clear to me whether it makes sense to integrate it into the MPIR Windows build or whether it is preferable to maintain it as a self standing addition. In particular, if it is to be integrated, it will be necessary to identify a designated and active maintainer of this component of the build as I am not in a position to take on this additional workload. |
rechecked:
|
Hi Simon, It would be a useful addition to this repository but I would need a volunteer to integrate it into the repository and then maintain it . Quite a bit of work would be involved as my current build assumes and builds only one specified version of MPIR whereas the proposed addition would need to build each of a number of versions and then package them with the stub library to produce the multi-architecture binary. This is a significant development exercise even though the basic approach has been shown to work. I don't believe the original proposer was willing to take on this task so the proposal was not pursued further. |
This solution generates a stub proxy DLL for the MPIR library. When applications link to MPIR, they will call this stub proxy DLL instead. The stub proxy DLL analyzes the CPU model it is running on, and then uses LoadLibrary to load the appropriate optimized version of MPIR.dll. It patches all of the MPIR function entrypoints and JMPs to the appropriate function in the optimized version of MPIR.
The basis for the 64 bit stub DLL was automatically generated from the 64 bit GC version of MPIR.dll using the tool below:
https://www.codeproject.com/Articles/1179147/ProxiFy-Automatic-Proxy-DLL-Generation