This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Integrating Ralf's rebase into setup.exe


Rob,

On Thu, Dec 05, 2002 at 06:18:56PM +1100, Robert Collins wrote:
> On Thu, 2002-12-05 at 07:59, Jason Tishler wrote:
> As for design, here's what I'd like to see:
> Ralfs reimplementation sites in a lib - i.e. libcygimagehlp.a - and
> you and I carry on the design discussion with no change. Is that
> possible?

Yes.

> If so, then frankly, I don't care what Ralf's code looks like.

Good.  I was hoping that being dependent on Ralf's code did not generate
significantly more work for me.

> Just like I don't care what the bzip2lib internals are like when the
> interface is good and clear.

The current interface of the proposed library is as follows:

    BOOL GetImageInfos(char *filename, uint *ImageBase, uint *ImageSize);
    BOOL CheckImage(char *filename);
    BOOL FixImage(char *filename);
    BOOL ReBaseImage(
      PSTR CurrentImageName,  
      PSTR SymbolPath,              // ignored 
      BOOL fReBase,                 
      BOOL fRebaseSysfileOk,        // ignored 
      BOOL fGoingDown,              // ignored 
      ULONG CheckImageSize,         // ignored 
      ULONG *OldImageSize,  
      ULONG *OldImageBase,  
      ULONG *NewImageSize,  
      ULONG *NewImageBase,  
      ULONG TimeStamp        
    );

I'm only interested in ReBaseImage() which I have verified to be a drop
in replacement for the MS version.

Is the above interface acceptable?

> It means that
> a) we can switch between the implementations trivially if we need to
> in the future.
> b) I don't need to think :}.

Agreed.

> Your integration path simply continues (where are we at? ;}).

My progress has been slow and not steady.  Sigh...

My plan is to release ASAP a stand-alone rebase based on Ralf's rebase
and relocation fix-up functionality and a new "-T" option (like tar's).
In this way, that Apache, Perl, Python, etc. users on all platforms
(including Me) can easily rebase there entire system with the following
batch file snippet:

    gzip -d -c /etc/setup/*.lst.gz | grep "dll$" | grep -v cygwin1.dll |
        sed "s/^/\//" | xargs -n 1 cygpath -wa >rebase.lst
    rebase -d -b 0x68000000 -o 0x10000 -T rebase.lst
    del rebase.lst

> For the library, while code internals won't be my problem per se :},
> it does need to:
> a) Cross compile (linux->win32, cygwin->win32)

I have verified the latter.  I'm not set up for the former -- it would
be nice is someone who is could help me do so.

> b) standard compile (cygwin->cygwin).

I have verified this one too.

> c) be autoconfiscated to support the above 2 with maximum ease.

I will probably need help with the above or at least some pointers.

Thanks,
Jason

-- 
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]