develooper Front page | perl.perl5.porters | Postings from December 2014

[perl #114704] win32: rebase and bind the core and all XS module dlls during build process

bulk88 via RT
December 26, 2014 03:32
[perl #114704] win32: rebase and bind the core and all XS module dlls during build process
Message ID:
Now with support for binding to SxS CRTs and the Win64 question is answered, 64 bit rebase tool finds 64 bit kernel32.dll. MS really didn't intend to support IAT binding with SxS. Figuring out the path of the CRT DLL was quite complicated. In this patch, to do a IAT bind, full perl and Win32 the module must be built, because of the xsub Win32::GetModuleFileName which I added. I could change Win32::GetCRTDllHandle to be Win32::GetCRTDllFileName and return a string, that way miniperl.exe can IAT bind itself on SxS VCs. Or I could add a plain C "--w32libc" option to generate_uudmap.c which prints the CRT path and miniperl gets it with backticks from generate_uudmap.exe since both were compiled with the same VC/same config.

The problem with this script from my original goals in this ticket is, it doesn't run at XS module build time, it only runs at Perl engine build time. Maybe it should be extracted from and go into /utils as "/utils/winprelink" or "/utils/plrebase" or "/utils/plrb" ("" is what I've called it when running it outside of Cygwin has a unix shell script called "perlrebase" but is unusable on non-Cygwin Win32 perl. 

related reading: cygwin rebase.exe's readme

bulk88 ~ bulk88 at

via perlbug:  queue: perl5 status: open Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About