On Thu, Sep 12, 2013 at 8:15 AM, <[email protected]> wrote: > Author: trawick > Date: Thu Sep 12 12:15:02 2013 > New Revision: 1522544 > > URL: http://svn.apache.org/r1522544 > Log: > BaseAddr.ref: > . Update sizes as necessary based on a 64-bit debug build with Visual > Studio > 2012. >
Any concern with that methodology, or should I go ahead and do the same thing for the 2.4.x branch? > . Add missing modules mod_apreq, mod_authnz_fcgi, mod_dialup, > mod_optional_fn_export, mod_optional_fn_import, mod_optional_hook_export, > mod_optional_hook_import, and mod_policy. > (The example mods aren't important, but adding them avoids having to > treat those as exceptions in any sort of automatic update mechanism. > Potential issues with the several modules that aren't currently buildable > with the cmake-based solution have not been addressed.) > > fixBaseAddrs.pl: > . New script to generate a new BaseAddr.ref based on Microsoft linker > warnings about inadequate size or missing module. > > Added: > httpd/httpd/trunk/build/win32/fixBaseAddrs.pl (with props) > Modified: > httpd/httpd/trunk/os/win32/BaseAddr.ref > > Added: httpd/httpd/trunk/build/win32/fixBaseAddrs.pl > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/build/win32/fixBaseAddrs.pl?rev=1522544&view=auto > > ============================================================================== > --- httpd/httpd/trunk/build/win32/fixBaseAddrs.pl (added) > +++ httpd/httpd/trunk/build/win32/fixBaseAddrs.pl Thu Sep 12 12:15:02 2013 > @@ -0,0 +1,118 @@ > +#!/usr/bin/perl -w > +# > +# Licensed to the Apache Software Foundation (ASF) under one or more > +# contributor license agreements. See the NOTICE file distributed with > +# this work for additional information regarding copyright ownership. > +# The ASF licenses this file to You under the Apache License, Version 2.0 > +# (the "License"); you may not use this file except in compliance with > +# the License. You may obtain a copy of the License at > +# > +# http://www.apache.org/licenses/LICENSE-2.0 > +# > +# Unless required by applicable law or agreed to in writing, software > +# distributed under the License is distributed on an "AS IS" BASIS, > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > +# See the License for the specific language governing permissions and > +# limitations under the License. > +# > +# HOWTO use this to update BaseAddrs.ref: > +# > +# This takes the old BaseAddrs.ref and a build listing showing LNK4013 > +# and LNK4198 errors and produces an updated BaseAddrs.ref with any > +# necessary changes for incorrect sizes or missing modules. > +# > +# Missing modules are added with a default size of 64K, so another > +# build is needed to determine if a non-default size is required for > +# newly added modules. > + > +use strict; > + > +my $oldref = shift; > +my $listing = shift; > +my $newref = shift; > + > +my $starting_addr = 0x6FF00000; > +my $default_size = 0x00010000; > + > +my @modnames = (); > +my @maxsizes = (); > +my @comments = (); > +my $in_defs = undef; > +open(F, "<$oldref") or die; > +while (<F>) { > + my $l = $_; > + chomp($l); > + if (!$in_defs && length($l) != 0 && substr($l, 0, 1) ne ';') { > + $in_defs = 1; > + } > + > + if ($in_defs) { > + my @fields = split(/[ \t]+/, $l); > + @modnames = (@modnames, $fields[0]); > + @maxsizes = (@maxsizes, hex($fields[2])); > + } > + else { > + @comments = (@comments, $l); > + } > +} > +close(F) or die; > + > +my $curlib = undef; > +my %reported = (); > +open(F, "<$listing") or die; > +while (<F>) { > + my $l = $_; > + chomp($l); > + > + if ($l =~ /Creating library (.*)\.lib/) { > + if ($1 eq "libhttpd") { > + $curlib = "$1.dll"; > + } > + else { > + $curlib = "$1.so"; > + } > + } > + elsif ($l =~ /warning LNK4013: image size (.*) exceeds/) { > + my $mod = $curlib; > + my $newsize = hex($1); > + if (!$reported{$mod}) { > + $reported{$mod} = 1; > + > + # round to nearest 64K > + $newsize = int(1 + $newsize / 0x00010000) * 0x00010000; > + printf "$curlib size changes to %s (rounded to 0x%08X)\n", > $1, $newsize; > + my $i = 0; > + while ($i < scalar(@modnames)) { > + if ($modnames[$i] eq $mod) { > + print " (from $maxsizes[$i])\n"; > + $maxsizes[$i] = $newsize; > + last; > + } > + ++$i; > + } > + } > + } > + elsif ($l =~ /warning LNK4198: base key '(.*)' not found/) { > + my $mod = $1; > + if (!$reported{$mod}) { > + $reported{$mod} = 1; > + print "$mod must be added\n"; > + @modnames = (@modnames, $mod); > + @maxsizes = (@maxsizes, $default_size); > + } > + } > +} > +close(F) or die; > + > +open(F, ">$newref") or die; > + > +print F join("\n", @comments); > +print F "\n"; > +my $i = 0; > +my $curaddr = $starting_addr; > +while ($i < scalar(@modnames)) { > + printf F "%-28s0x%08X 0x%08X\n", $modnames[$i], $curaddr, > $maxsizes[$i]; > + $curaddr += $maxsizes[$i]; > + ++$i; > +} > +close(F) or die; > > Propchange: httpd/httpd/trunk/build/win32/fixBaseAddrs.pl > > ------------------------------------------------------------------------------ > svn:eol-style = native > > Modified: httpd/httpd/trunk/os/win32/BaseAddr.ref > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/os/win32/BaseAddr.ref?rev=1522544&r1=1522543&r2=1522544&view=diff > > ============================================================================== > --- httpd/httpd/trunk/os/win32/BaseAddr.ref (original) > +++ httpd/httpd/trunk/os/win32/BaseAddr.ref Thu Sep 12 12:15:02 2013 > @@ -8,118 +8,126 @@ > > ; module name base-address max-size > > -libhttpd.dll 0x6FF00000 0x000A0000 > -mod_auth_basic.so 0x6FEF0000 0x00010000 > -mod_auth_digest.so 0x6FED0000 0x00020000 > -mod_cern_meta.so 0x6FEC0000 0x00010000 > -mod_expires.so 0x6FEB0000 0x00010000 > -mod_headers.so 0x6FEA0000 0x00010000 > -mod_info.so 0x6FE90000 0x00010000 > -mod_rewrite.so 0x6FE70000 0x00020000 > -mod_speling.so 0x6FE60000 0x00010000 > -mod_status.so 0x6FE50000 0x00010000 > -mod_usertrack.so 0x6FE40000 0x00010000 > -mod_file_cache.so 0x6FE20000 0x00020000 > -mod_unique_id.so 0x6FE00000 0x00010000 > -mod_vhost_alias.so 0x6FDF0000 0x00010000 > -mod_mime_magic.so 0x6FDE0000 0x00010000 > -mod_dav.so 0x6FDC0000 0x00020000 > -mod_dav_fs.so 0x6FDB0000 0x00010000 > -mod_proxy_connect.so 0x6FD90000 0x00010000 > -mod_proxy_ftp.so 0x6FD80000 0x00010000 > -mod_proxy_http.so 0x6FD70000 0x00010000 > -mod_ssl.so 0x6FD00000 0x00070000 > -mod_actions.so 0x6FCE0000 0x00010000 > -mod_alias.so 0x6FCD0000 0x00010000 > -mod_asis.so 0x6FCC0000 0x00010000 > -mod_autoindex.so 0x6FCA0000 0x00010000 > -mod_cgi.so 0x6FC90000 0x00010000 > -mod_dir.so 0x6FC80000 0x00010000 > -mod_env.so 0x6FC70000 0x00010000 > -mod_imagemap.so 0x6FC60000 0x00010000 > -mod_include.so 0x6FC50000 0x00010000 > -mod_isapi.so 0x6FC40000 0x00010000 > -mod_log_config.so 0x6FC30000 0x00010000 > -mod_mime.so 0x6FC20000 0x00010000 > -mod_negotiation.so 0x6FC10000 0x00010000 > -mod_setenvif.so 0x6FC00000 0x00010000 > -mod_userdir.so 0x6FBF0000 0x00010000 > -mod_cache.so 0x6FBD0000 0x00020000 > -mod_cache_disk.so 0x6FBC0000 0x00010000 > -mod_buffer.so 0x6FBB0000 0x00010000 > -mod_deflate.so 0x6FB90000 0x00020000 > -mod_ext_filter.so 0x6FB80000 0x00010000 > -mod_charset_lite.so 0x6FB70000 0x00010000 > -mod_authn_anon.so 0x6FB60000 0x00010000 > -mod_authn_dbm.so 0x6FB50000 0x00010000 > -mod_authn_file.so 0x6FB40000 0x00010000 > -mod_authz_dbm.so 0x6FB30000 0x00010000 > -mod_authz_groupfile.so 0x6FB20000 0x00010000 > -mod_authz_host.so 0x6FB10000 0x00010000 > -mod_authz_user.so 0x6FB00000 0x00010000 > -mod_logio.so 0x6FAF0000 0x00010000 > -mod_ldap.so 0x6FAD0000 0x00020000 > -mod_authnz_ldap.so 0x6FAC0000 0x00010000 > -mod_ident.so 0x6FAB0000 0x00010000 > -mod_proxy_ajp.so 0x6FAA0000 0x00010000 > -mod_proxy_balancer.so 0x6FA90000 0x00010000 > -mod_log_forensic.so 0x6FA80000 0x00010000 > -mod_version.so 0x6FA70000 0x00010000 > -mod_bucketeer.so 0x6FA60000 0x00010000 > -mod_dumpio.so 0x6FA50000 0x00010000 > -mod_echo.so 0x6FA40000 0x00010000 > -mod_authn_dbd.so 0x6FA30000 0x00010000 > -mod_dbd.so 0x6FA20000 0x00010000 > -mod_proxy.so 0x6FA00000 0x00020000 > -mod_access_compat.so 0x6F9F0000 0x00010000 > -mod_authz_core.so 0x6F9E0000 0x00010000 > -mod_proxy_fcgi.so 0x6F9D0000 0x00010000 > -mod_authn_core.so 0x6F9C0000 0x00010000 > -mod_authz_dbd.so 0x6F9B0000 0x00010000 > -mod_authz_owner.so 0x6F9A0000 0x00010000 > -mod_example_hooks.so 0x6F990000 0x00010000 > -mod_case_filter.so 0x6F980000 0x00010000 > -mod_case_filter_in.so 0x6F970000 0x00010000 > -mod_substitute.so 0x6F960000 0x00010000 > -mod_filter.so 0x6F950000 0x00010000 > -mod_dav_lock.so 0x6F940000 0x00010000 > -mod_auth_form.so 0x6F930000 0x00010000 > -mod_example_ipc.so 0x6F920000 0x00010000 > -mod_request.so 0x6F910000 0x00010000 > -mod_lbmethod_rr.so 0x6F900000 0x00010000 > -mod_session.so 0x6F8F0000 0x00010000 > -mod_session_cookie.so 0x6F8E0000 0x00010000 > -mod_session_crypto.so 0x6F8D0000 0x00010000 > -mod_session_dbd.so 0x6F8C0000 0x00010000 > -mod_socache_dbm.so 0x6F8B0000 0x00010000 > -mod_socache_dc.so 0x6F8A0000 0x00010000 > -mod_socache_memcache.so 0x6F890000 0x00010000 > -mod_socache_shmcb.so 0x6F880000 0x00010000 > -mod_sed.so 0x6F870000 0x00010000 > -mod_lua.so 0x6F850000 0x00020000 > -mod_ratelimit.so 0x6F840000 0x00010000 > -mod_remoteip.so 0x6F830000 0x00010000 > -mod_lbmethod_bybusyness.so 0x6F820000 0x00010000 > -mod_lbmethod_byrequests.so 0x6F810000 0x00010000 > -mod_lbmethod_bytraffic.so 0x6F800000 0x00010000 > -mod_lbmethod_heartbeat.so 0x6F7F0000 0x00010000 > -mod_heartbeat.so 0x6F7E0000 0x00010000 > -mod_heartmonitor.so 0x6F7D0000 0x00010000 > -mod_watchdog.so 0x6F7C0000 0x00010000 > -mod_proxy_scgi.so 0x6F7B0000 0x00010000 > -mod_serf.so 0x6F7A0000 0x00010000 > -mod_reqtimeout.so 0x6F790000 0x00010000 > -mod_reflector.so 0x6F780000 0x00010000 > -mod_slotmem_plain.so 0x6F770000 0x00010000 > -mod_slotmem_shm.so 0x6F760000 0x00010000 > -mod_authn_socache.so 0x6F750000 0x00010000 > -mod_proxy_express.so 0x6F740000 0x00010000 > -mod_log_debug.so 0x6F730000 0x00010000 > -mod_proxy_html.so 0x6F720000 0x00010000 > -mod_xml2enc.so 0x6F710000 0x00010000 > -mod_data.so 0x6F700000 0x00010000 > -mod_allowmethods.so 0x6F6F0000 0x00010000 > -mod_cache_socache.so 0x6F6E0000 0x00010000 > -mod_allowhandlers.so 0x6F6D0000 0x00010000 > -mod_macro.so 0x6F6C0000 0x00010000 > -mod_proxy_wstunnel.so 0x6F6B0000 0x00010000 > +libhttpd.dll 0x6FF00000 0x000F0000 > +mod_auth_basic.so 0x6FFF0000 0x00020000 > +mod_auth_digest.so 0x70010000 0x00020000 > +mod_cern_meta.so 0x70030000 0x00010000 > +mod_expires.so 0x70040000 0x00010000 > +mod_headers.so 0x70050000 0x00020000 > +mod_info.so 0x70070000 0x00020000 > +mod_rewrite.so 0x70090000 0x00030000 > +mod_speling.so 0x700C0000 0x00010000 > +mod_status.so 0x700D0000 0x00020000 > +mod_usertrack.so 0x700F0000 0x00010000 > +mod_file_cache.so 0x70100000 0x00020000 > +mod_unique_id.so 0x70120000 0x00010000 > +mod_vhost_alias.so 0x70130000 0x00010000 > +mod_mime_magic.so 0x70140000 0x00020000 > +mod_dav.so 0x70160000 0x00040000 > +mod_dav_fs.so 0x701A0000 0x00030000 > +mod_proxy_connect.so 0x701D0000 0x00020000 > +mod_proxy_ftp.so 0x701F0000 0x00020000 > +mod_proxy_http.so 0x70210000 0x00020000 > +mod_ssl.so 0x70230000 0x00070000 > +mod_actions.so 0x702A0000 0x00010000 > +mod_alias.so 0x702B0000 0x00020000 > +mod_asis.so 0x702D0000 0x00010000 > +mod_autoindex.so 0x702E0000 0x00020000 > +mod_cgi.so 0x70300000 0x00020000 > +mod_dir.so 0x70320000 0x00010000 > +mod_env.so 0x70330000 0x00010000 > +mod_imagemap.so 0x70340000 0x00020000 > +mod_include.so 0x70360000 0x00030000 > +mod_isapi.so 0x70390000 0x00020000 > +mod_log_config.so 0x703B0000 0x00020000 > +mod_mime.so 0x703D0000 0x00020000 > +mod_negotiation.so 0x703F0000 0x00020000 > +mod_setenvif.so 0x70410000 0x00020000 > +mod_userdir.so 0x70430000 0x00010000 > +mod_cache.so 0x70440000 0x00030000 > +mod_cache_disk.so 0x70470000 0x00020000 > +mod_buffer.so 0x70490000 0x00010000 > +mod_deflate.so 0x704A0000 0x00020000 > +mod_ext_filter.so 0x704C0000 0x00020000 > +mod_charset_lite.so 0x704E0000 0x00010000 > +mod_authn_anon.so 0x704F0000 0x00010000 > +mod_authn_dbm.so 0x70500000 0x00010000 > +mod_authn_file.so 0x70510000 0x00010000 > +mod_authz_dbm.so 0x70520000 0x00010000 > +mod_authz_groupfile.so 0x70530000 0x00010000 > +mod_authz_host.so 0x70540000 0x00010000 > +mod_authz_user.so 0x70550000 0x00010000 > +mod_logio.so 0x70560000 0x00010000 > +mod_ldap.so 0x70570000 0x00030000 > +mod_authnz_ldap.so 0x705A0000 0x00020000 > +mod_ident.so 0x705C0000 0x00010000 > +mod_proxy_ajp.so 0x705D0000 0x00020000 > +mod_proxy_balancer.so 0x705F0000 0x00020000 > +mod_log_forensic.so 0x70610000 0x00010000 > +mod_version.so 0x70620000 0x00010000 > +mod_bucketeer.so 0x70630000 0x00010000 > +mod_dumpio.so 0x70640000 0x00010000 > +mod_echo.so 0x70650000 0x00010000 > +mod_authn_dbd.so 0x70660000 0x00010000 > +mod_dbd.so 0x70670000 0x00020000 > +mod_proxy.so 0x70690000 0x00040000 > +mod_access_compat.so 0x706D0000 0x00010000 > +mod_authz_core.so 0x706E0000 0x00020000 > +mod_proxy_fcgi.so 0x70700000 0x00020000 > +mod_authn_core.so 0x70720000 0x00010000 > +mod_authz_dbd.so 0x70730000 0x00010000 > +mod_authz_owner.so 0x70740000 0x00010000 > +mod_example_hooks.so 0x70750000 0x00020000 > +mod_case_filter.so 0x70770000 0x00010000 > +mod_case_filter_in.so 0x70780000 0x00010000 > +mod_substitute.so 0x70790000 0x00020000 > +mod_filter.so 0x707B0000 0x00020000 > +mod_dav_lock.so 0x707D0000 0x00020000 > +mod_auth_form.so 0x707F0000 0x00020000 > +mod_example_ipc.so 0x70810000 0x00010000 > +mod_request.so 0x70820000 0x00010000 > +mod_lbmethod_rr.so 0x70830000 0x00010000 > +mod_session.so 0x70840000 0x00020000 > +mod_session_cookie.so 0x70860000 0x00010000 > +mod_session_crypto.so 0x70870000 0x00020000 > +mod_session_dbd.so 0x70890000 0x00020000 > +mod_socache_dbm.so 0x708B0000 0x00020000 > +mod_socache_dc.so 0x708D0000 0x00010000 > +mod_socache_memcache.so 0x708E0000 0x00010000 > +mod_socache_shmcb.so 0x708F0000 0x00020000 > +mod_sed.so 0x70910000 0x00020000 > +mod_lua.so 0x70930000 0x00040000 > +mod_ratelimit.so 0x70970000 0x00010000 > +mod_remoteip.so 0x70980000 0x00010000 > +mod_lbmethod_bybusyness.so 0x70990000 0x00010000 > +mod_lbmethod_byrequests.so 0x709A0000 0x00010000 > +mod_lbmethod_bytraffic.so 0x709B0000 0x00010000 > +mod_lbmethod_heartbeat.so 0x709C0000 0x00020000 > +mod_heartbeat.so 0x709E0000 0x00010000 > +mod_heartmonitor.so 0x709F0000 0x00020000 > +mod_watchdog.so 0x70A10000 0x00020000 > +mod_proxy_scgi.so 0x70A30000 0x00020000 > +mod_serf.so 0x70A50000 0x00010000 > +mod_reqtimeout.so 0x70A60000 0x00020000 > +mod_reflector.so 0x70A80000 0x00010000 > +mod_slotmem_plain.so 0x70A90000 0x00010000 > +mod_slotmem_shm.so 0x70AA0000 0x00020000 > +mod_authn_socache.so 0x70AC0000 0x00020000 > +mod_proxy_express.so 0x70AE0000 0x00010000 > +mod_log_debug.so 0x70AF0000 0x00010000 > +mod_proxy_html.so 0x70B00000 0x00020000 > +mod_xml2enc.so 0x70B20000 0x00020000 > +mod_data.so 0x70B40000 0x00010000 > +mod_allowmethods.so 0x70B50000 0x00010000 > +mod_cache_socache.so 0x70B60000 0x00020000 > +mod_allowhandlers.so 0x70B80000 0x00010000 > +mod_macro.so 0x70B90000 0x00020000 > +mod_proxy_wstunnel.so 0x70BB0000 0x00020000 > +mod_apreq.so 0x70BD0000 0x00020000 > +mod_authnz_fcgi.so 0x70BF0000 0x00020000 > +mod_dialup.so 0x70C10000 0x00010000 > +mod_optional_fn_export.so 0x70C20000 0x00010000 > +mod_optional_fn_import.so 0x70C30000 0x00010000 > +mod_optional_hook_export.so 0x70C40000 0x00010000 > +mod_optional_hook_import.so 0x70C50000 0x00010000 > +mod_policy.so 0x70C60000 0x00020000 > > > -- Born in Roswell... married an alien... http://emptyhammock.com/
