[Python-Dev] Re: [Python-checkins] CVS: python/dist/src/PCbuild winsound.dsp,NONE,1.1 _socket.dsp,1.1,1.2 _sre.dsp,1.2,1.3 _tkinter.dsp,1.13,1.14 bsddb.dsp,1.9,1.10 mmap.dsp,1.2,1.3 parser.dsp,1.8,1.9 pyexpat.dsp,1.2,1.3 python.dsp,1.10,1.11 python16.dsp,1.2,1.3 pythonw.dsp,1.8,1.9 select.dsp,1.1,1.2 unicodedata.dsp,1.1,1.2 zlib.dsp,1.10,1.11

Greg Stein gstein@lyra.org
Fri, 21 Apr 2000 16:19:03 -0700 (PDT)


On Fri, 21 Apr 2000, Guido van Rossum wrote:
>...
> * Base address for all extension modules updated. PC\dllbase_nt.txt
> also updated.  Erroneous "libpath" directory removed for all
> projects.

Rather than specifying the base address in each DSP, the Apache project
has used a text file for this stuff. Here is the text file used:

--snip--
-- Begin New BaseAddr.ref --
; os/win32/BaseAddr.ref contains the central repository
;                       of all module base addresses
;                       to avoid relocation

; WARNING: Update this file by reviewing the image size
;          of the debug-generated dll files; release images
;          should fit in the larger debug-sized space.

; module name      base-address      max-size

aprlib               0x6FFA0000    0x00060000
ApacheCore           0x6FF00000    0x000A0000
mod_auth_anon        0x6FEF0000    0x00010000
mod_cern_meta        0x6FEE0000    0x00010000
mod_auth_digest      0x6FED0000    0x00010000
mod_expires          0x6FEC0000    0x00010000
mod_headers          0x6FEB0000    0x00010000
mod_info             0x6FEA0000    0x00010000
mod_rewrite          0x6FE80000    0x00020000
mod_speling          0x6FE70000    0x00010000
mod_status           0x6FE60000    0x00010000
mod_usertrack        0x6FE50000    0x00010000
mod_proxy            0x6FE30000    0x00020000
--snip--

And here is what one of the link lines looks like:

# ADD LINK32 ApacheCore.lib aprlib.lib kernel32.lib /nologo
/base:@BaseAddr.ref,mod_usertrack /subsystem:windows /dll /map /debug
/machine:I386 /libpath:"..\..\CoreD" /libpath:"..\..\lib\apr\Debug"


This mechanism could be quite helpful for Python. The .ref file replaces
the dllbase_nt.txt file, centralizes the management, and directly
integrates with the tools.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/