This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
add Win32 USE_NO_REGISTRY build option
authorDaniel Dragan <bulk88@hotmail.com>
Wed, 30 Sep 2015 09:36:51 +0000 (05:36 -0400)
committerTony Cook <tony@develop-help.com>
Sun, 11 Oct 2015 22:13:51 +0000 (09:13 +1100)
commit6937817d58b1688d689072cd112ed95fe62db2a7
tree9cd25f9a00cbb51500ea6c6311314415c7e80cc3
parent0517ed3816767f5896256870b8cca4b856e4088a
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
README.win32
iperlsys.h
perl.c
pod/perldelta.pod
win32/Makefile
win32/makefile.mk
win32/perlhost.h
win32/win32.c
win32/win32.h
win32/wince.c