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] | |
Since I'm around half way done, I decided to post a status report to let
people know that I'm still working on this...
I have implemented the following:
main ()
{
for dll in dlls
rebase (dll)
}
rebase (dll)
{
sz = image_size (dll)
find slot of size sz in free_list and remove slot from free_list
add slot to used_list
rebase_image (dll)
}
The free and used lists are persisted in a file called rebase.conf which will
be ultimately stored in /etc/setup. Attached is a sample.
I will be implementing the un-rebase and re-rebase functionality next:
unrebase (dll)
{
find dll in used_list and remove from used_list
add slot to free_list
}
rerebase (dll)
{
find dll in used_list
if (old image size == new image size)
rebase_image (dll)
else
unrebase (dll)
rebase (dll)
}
Note that I have skipped executables (even though suggested by Rob),
because AFAICT that are *not* rebase-able. I have also skipped DLL
dependency checking too. You have to crawl, before you can walk, before
you can run...
I have decided to develop using a stand-alone Mingw (i.e., -mno-cygwin) app
instead of integrating directly into setup.exe for the following reasons:
o speed development
o prevent whacking my Cygwin installation
? possibly this stand-alone rebase could be used as a one-shot to
rebase existing Cygwin installations
? possibly this stand-alone rebase should be the "real" rebase tool that
is part of the standard Cygwin distribution (as opposed to my previous
versions)
? possibly setup.exe should call rebase.exe to minimize impact on size
(although the current stripped size is ~31K)
Any comments on the items above marked by "?" would be appreciated.
BTW, the attached (untried) "patch" demonstrates how one could integrate
this new rebase functionality into setup.exe.
I can post the source if anyone is interested in checking it out.
Otherwise, I will post it when full functionality is achieved.
Thanks,
Jason
Attachment:
rebase.conf
Description: Text document
Attachment:
rebase.diff
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |