home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 December (Special) / PCWorld_2005-12_Special_cd.bin / Bezpecnost / lsti / lsti.exe / framework-2.5.exe / rebase-2.4.2.README < prev    next >
Text File  |  2005-07-28  |  5KB  |  153 lines

  1. $Id: README,v 1.12 2005/07/24 00:14:43 jt Exp $
  2.  
  3. Abstract:
  4.  
  5. The Cygwin rebase distribution contains two utilities, rebase and
  6. rebaseall.  The first utility is modeled after Microsoft's SDK rebase:
  7.  
  8.     http://msdn.microsoft.com/library/en-us/tools/tools/rebase.asp
  9.  
  10. However, instead of linking rebase against Microsoft's imagehlp library,
  11. it is linked against Ralf Habacker's imagehelper library.
  12.  
  13. The following are the advantages of using Ralf's library:
  14.  
  15.     1. rebase can be a Cygwin application.  If rebase is linked against
  16.        Microsoft's imagehlp library, then it must be a Mingw application.
  17.        This is because imagehlp is dependent on Microsoft's C runtime and
  18.        therefore cannot be used in an application that is dependent on
  19.        another C runtime (i.e., Cygwin).
  20.  
  21.     2. rebase can be used on Windows Me.  For some reason, Microsoft's
  22.        imagehlp.dll does not function properly on this platform.
  23.  
  24.     3. Ralf's imagehelper library also provides FixImage() which fixes
  25.        bad relocations in DLLs that can be caused by stripping.
  26.  
  27. I would like to thank Ralf Habacker for providing the imagehelper
  28. library.  This library has enabled me to create a rebase utility that
  29. is usable by all Cygwin user (regardless of platform) on all DLLs
  30. (regardless of stripping).
  31.  
  32. The rebaseall utility is a convenient way for users that suffer from the
  33. Cygwin rebase problem to rebase their entire system (i.e., all of their
  34. DLLs).  The following is a list of known Cygwin applications that are
  35. affected by the rebase problem:
  36.  
  37.     Apache
  38.     Perl
  39.     Python
  40.  
  41. The rebase problem is due to fork() failing when it is unable to load
  42. DLLs in the child at the same address as in the parent.  This is caused
  43. by DLLs which have conflicting base addresses.  An error message like
  44. the following will be displayed when the problem is triggered:
  45.  
  46.     C:\cygwin\bin\python.exe: *** unable to remap C:\cygwin\bin\cygssl.dll to same address as parent(0xDF0000) != 0xE00000
  47.  
  48. Note that rebaseall is only a stop-gap measure.  Eventually the rebase
  49. functionality will be added to Cygwin's setup.exe, so that rebasing will
  50. happen automatically.
  51.  
  52. Requirements:
  53.  
  54. The following packages or later are required to build and/or execute
  55. Cygwin rebase and/or rebaseall:
  56.  
  57.     ash 20040127-3
  58.     binutils 20030307-1
  59.     cygwin 1.5.7-1
  60.     fileutils 4.1-2
  61.     gcc 3.2-3
  62.     grep 2.5-1
  63.     gzip 1.3.5-1
  64.     sed 4.0.7-2
  65.  
  66. Install:
  67.  
  68. Cygwin rebase does not require any special installation procedures.
  69.  
  70. Usage:
  71.  
  72. Use the following procedure to rebase your entire system:
  73.  
  74.     1. shutdown all Cygwin processes and services
  75.     2. start ash (do not use bash or rxvt)
  76.     3. execute /bin/rebaseall (in the ash window)
  77.  
  78. If you get any errors due to DLLs being in-use or read-only, then take the
  79. appropriate action and rerun rebaseall.  Otherwise, you run the risk of fork()
  80. failing.
  81.  
  82. The following is the rebaseall command line syntax:
  83.  
  84.     rebaseall [-b BaseAddress] [-o Offset] [-T FileList | -] [-v]
  85.  
  86. where:
  87.  
  88.     -b => base address used by rebase (default: 0x70000000)
  89.     -o => offset between each DLL rebased (default: 0x10000)
  90.     -s => specify DLL suffix, use multiple if necessary (default: dll, so)
  91.     -T => specify filelist (or stdin) to list additional files
  92.     -v => verbose (default: off)
  93.  
  94. The following is the rebase command line syntax:
  95.  
  96.     rebase -b BaseAddress [-Vdv] [-o Offset] [-T FileList | -] Files...
  97.  
  98. where:
  99.  
  100.     -b => base address used by rebase
  101.     -d => rebase down memory (default: up)
  102.     -o => offset between each DLL rebased
  103.     -T => specify filelist (or stdin) to list additional files
  104.     -V => display version and exit
  105.     -v => verbose (default: off)
  106.  
  107. Source:
  108.  
  109. Cygwin rebase builds OOTB under Cygwin.  With minor Makefile tweaking,
  110. it builds cleanly under Mingw too.
  111.  
  112. Build:
  113.  
  114. See build.sh in the source archive for my exact build recipe for configuring,
  115. making, and packaging this distribution.
  116.  
  117. Test:
  118.  
  119. rebase does not contain any regression tests.
  120.  
  121. Issues:
  122.  
  123. The following are the known Cygwin rebase issues:
  124.  
  125. 1. rebase should be integrated with Cygwin's setup.exe.
  126.  
  127. 2. rebase does not handle in-use DLLs.
  128.  
  129. 3. rebase does not currently store the DLL base addresses in a database
  130. which would speed up and/or obviate subsequent rebases.
  131.  
  132. 4. rebase skips read-only DLLs.
  133.  
  134. Homepage:
  135.  
  136. The primary rebase web site is:
  137.  
  138.     http://www.tishler.net/jason/software/rebase/
  139.  
  140. Download:
  141.  
  142. The primary rebase download site is:
  143.  
  144.     http://www.tishler.net/jason/software/rebase/
  145.  
  146. Mailing Lists:
  147.  
  148. Please report problems, suggestions, etc. to <cygwin@cygwin.com>.
  149.  
  150. Maintainer:
  151.  
  152.     Jason Tishler <jason@tishler.net>
  153.