diff options
author | Daniel Dragan <bulk88@hotmail.com> | 2015-09-30 05:36:51 -0400 |
---|---|---|
committer | Tony Cook <tony@develop-help.com> | 2015-10-12 09:13:51 +1100 |
commit | 6937817d58b1688d689072cd112ed95fe62db2a7 (patch) | |
tree | 9cd25f9a00cbb51500ea6c6311314415c7e80cc3 /README.win32 | |
parent | 0517ed3816767f5896256870b8cca4b856e4088a (diff) | |
download | perl-6937817d58b1688d689072cd112ed95fe62db2a7.tar.gz |
add Win32 USE_NO_REGISTRY build option
-the first arg of win32_get_privlib is not used if the registry is not
queried, create a macro to allow the arg to drop out on WIN32_NO_REGISTRY
builds for efficiency and not to have unused C litteral strings in the
binary
-This patch changes the ABI of
PerlEnv_lib_path/PerlEnvLibPath/win32_get_privlib between USE_NO_REGISTRY
and no USE_NO_REGISTRY. Since win32_get_privlib is not exported from
perl523.dll, assume it and PerlEnv_lib_path are not public API, note
technically PerlEnv_lib_path will be callable only on PERL_IMPLICIT_SYS
builds, on no PERL_IMPLICIT_SYS builds it will fail at link time since
win32_get_privlib isnt exported. Therefore place it in
non-[affecting]-binary compatibility even though it does affect binary
compatibility.
-delay load advapi32.dll to save startup time (loading the DLL and the DLL
calling its initializers in DllMain) and one 4 KB memory page for
advapi32's .data section (doing "perl -E"sleep 100" on WinXP shows
advapi32 has a 20KB long .data section, first 4 KB are unique to the
process, the remaining 16KB are COW shared between processes according
to vmmap tool), putting a DebugBreak() in pp_getlogin and doing a
"nmake all" shows miniperl never calls getlogin during the build process.
An nmake test shows only ext/POSIX/t/wrappers.t and lib/warnings.t execute
pp_getlogin. Keeping advapi32.dll out of the perl process requires
removing comctl32.dll, since comctrl32.dll loads advapi32.dll, from perl
which I always do as a custom patch.
filed as [perl #123658]
XXXXXXXXXXXXXXXXXXXXXXX
Diffstat (limited to 'README.win32')
-rw-r--r-- | README.win32 | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/README.win32 b/README.win32 index 7e6565387e..672601988d 100644 --- a/README.win32 +++ b/README.win32 @@ -485,7 +485,8 @@ You can also control the shell that perl uses to run system() and backtick commands via PERL5SHELL. See L<perlrun>. Perl does not depend on the registry, but it can look up certain default -values if you choose to put them there. On Perl process start Perl checks if +values if you choose to put them there unless disabled at build time with +USE_NO_REGISTRY. On Perl process start Perl checks if C<HKEY_CURRENT_USER\Software\Perl> and C<HKEY_LOCAL_MACHINE\Software\Perl> exist. If the keys exists, they will be checked for remainder of the Perl process's run life for certain entries. Entries in |