[PATCH v4 0/5] find_fast_cwd_pointer rewrite
Jeremy Drake
cygwin@jdrake.com
Tue Apr 1 17:25:11 GMT 2025
On Tue, 1 Apr 2025, Corinna Vinschen wrote:
> Oh, Jeremy, here's a question. We only add udis86 to the main branch.
> What about the 3.6 branch, does it still need a patch to accommodate
> the fast_cwd magic for a newer, upcoming Windows version?
I was going to ask about that too. I assume the plan is to keep the new
udis86 code for 3.7, and continue applying band-aids to the old code on
3.6 as needed. The question remains, do we apply band-aids for insider
builds or wait for an actual release (or something approximating a release
candidate)?
> And btw., I checked the file size again, and it turns out that after
> stripping the debug symbols the DLL takes ~30 pages or 120 K more memory
> than before udis86. I hope that's ok. But if you see ways to shave a
> few pages off by dropping code from udis86, I wouldn't be too unhappy :}
Hmm, I only tested on top of msys2 (which is on gcc 13.3.0), but here's
what I see:
$ ls -l
total 47952
-rwxr-xr-x 1 XXX None 24682293 Apr 1 10:14 postmsys-2.0.dll
-rwxr-xr-x 1 XXX None 24417887 Apr 1 10:12 premsys-2.0.dll
$ echo $(( $(stat -c %s postmsys-2.0.dll) - $(stat -c %s premsys-2.0.dll) ))
264406
$ strip premsys-2.0.dll
$ strip postmsys-2.0.dll
$ ls -l
total 6428
-rwxr-xr-x 1 XXX None 3330598 Apr 1 10:15 postmsys-2.0.dll
-rwxr-xr-x 1 XXX None 3246118 Apr 1 10:15 premsys-2.0.dll
$ echo $(( $(stat -c %s postmsys-2.0.dll) - $(stat -c %s premsys-2.0.dll) ))
84480
One thing I noticed that could make the code using udis86 smaller and
faster is to use members of the ud_t struct directly instead of calling
accessor functions. I don't know for sure if these members are intended
to be public or not (but they do seem to know how to declare members as
non-public: in ud_operand_t, they have an "internal use only" comment
followed by members named with leading underscores). I don't think it
would make a large dent in the size of the code relative to the size of
udis86 itself though.
More information about the Cygwin-patches
mailing list