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

From:
bulk88 via RT
Date:
December 26, 2014 03:32
Subject:
[perl #114704] win32: rebase and bind the core and all XS module dlls during build process
Message ID:
rt-4.0.18-8043-1419564718-81.114704-15-0@perl.org
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 make_ext.pl and go into /utils as "/utils/winprelink" or "/utils/plrebase" or "/utils/plrb" ("rb.pl" is what I've called it when running it outside of make_ext.pl). Cygwin has a unix shell script called "perlrebase" but is unusable on non-Cygwin Win32 perl. https://github.com/ajaxorg/cygwin-builds/blob/master/bin/perlrebase 

related reading: cygwin rebase.exe's readme http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README

-- 
bulk88 ~ bulk88 at hotmail.com

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=114704



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About