[Patch] Rebase: new switch --ephemeral
Achim Gratz
Stromeko@nexgo.de
Tue Jun 19 19:24:00 GMT 2012
Corinna Vinschen writes:
> The implementation of -E is a bit lacking, IMHO.
Fair enough.
> The description implies that the ephemeral file list gets "also" rebased.
> So I take it that there are two lists of files, the ones which get
> rebased and are written back into the DB, and the ephemeral ones which
> get rebased but are not written back.
The unwritten contract is that an ephemeral rebase can only be done if
the DB is in a stable state. But you are right, it is better to enforce
that.
> However, if the -E option is used, your patch does not write back the DB
> at all. The result is that the DB will not reflect reality anymore for
> those DLLs which are supposed to be stored in the DB.
I've re-worked the implementation to take care of that.
> Another problem is this. The idea of the DB stuff is to make sure that
> the DLLs on the system are rebased in a compact way. Since your
> ephemeral DLLs are handled exactly like the persistent DLLs in
> merge_image_info, the ephemeral and persistent DLLs memory addresses
> will be blended together. So you generate holes in the memory layout
> of the persistent DLLs, which is kind of contrary to the idea behind
> this.
This only happens if the DB is unstable (I think). Since I now do not
touch anything not in the DB, this should be no concern anymore. It is
intended that ephemeral DLL use holes in the mapping if they are
available, otherwise I could just rebase down from the lowest base
address.
> Therefore I'm wondering if it wouldn't be better to handle the ephemeral
> DLLs in a script, which rebases the DLLs below the lowest address in the
> DB. It should be pretty simple, kind of like this:
>
> low_addr=$(rebase -si | head -1 | awk '{ print $1 }')
> rebase -b $low_addr -d -T /path/to/ephemeral_dll_list
If the output from rebase was fully documented this would be OK, but I'd
still prefer if the functionality was within rebase itself. THis points
to another implementation option: implement a switch to mean "get the
lowest address from the database, but do the rebase without".
Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rebase-4.2.1-3.patch.gz
Type: application/x-gzip
Size: 3376 bytes
Desc: Patch against 4.2.0
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20120619/d8c4d661/attachment.bin>
More information about the Cygwin-apps
mailing list