This is the mail archive of the cygwin-apps 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: [Patch] Rebase: new switch --ephemeral


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

Attachment: rebase-4.2.1-3.patch.gz
Description: Patch against 4.2.0


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