This is the mail archive of the cygwin@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]

rebase addon - Bas and Size listing of dll's without rebasing


Hi,

while porting kde2 the rebase tool solved some problems for me on using libtools libltdl.

In the past I have to use the LTDL_DLOPEN_DEPLIBS in the config.h of libtldl, which enables
loading of all dependency dll's of a lib and because of many dll's used for kde this slow
down application loading significantly. If I haven't used this flag, cygwin tells about a
"... can't remap ..." problem.
After rebasing the dll's from the kdelibs, this error does not happens anymore and I can
reject this config option.

libltdl/config.h
...
/* Define if the OS needs help to load dependent libraries for dlopen(). */
//#define LTDL_DLOPEN_DEPLIBS 1
....

On analysing this problem I added an option "-l" to the rebase tool to list dll's imagebase
and -size without rebasing. It's very interesting to see how MS chooses there Imagebase.

Because I hacked this very quick, I have used simple FILE structure and fopen/fread calls.
Perhaps someone like to change this to iostream functionality.

$ rebase -h
rebase: unknown option -- h
usage: rebase -b BaseAddress [-d] -o Offset <file> ...  rebase <file>
usage: rebase -l <file> ...        list Imagebase and -size of <file>

Example:
$ rebase -l /opt/kde2/bin/*.dll
c:\programme\cygwin\opt\kde2\bin\cygDCOP-1.dll               - ImageBase: 74fb0000 ImageSize:
00026000
c:\programme\cygwin\opt\kde2\bin\cygartsc-0.dll              - ImageBase: 74f80000 ImageSize:
00007000
c:\programme\cygwin\opt\kde2\bin\cygartsflow-0.dll           - ImageBase: 74ee0000 ImageSize:
0007a000
c:\programme\cygwin\opt\kde2\bin\cygartsflow_idl-0.dll       - ImageBase: 74e50000 ImageSize:
0006f000
c:\programme\cygwin\opt\kde2\bin\cygartskde.dll              - ImageBase: 74df0000 ImageSize:
0003f000
c:\programme\cygwin\opt\kde2\bin\cygkICE-0.dll               - ImageBase: 74db0000 ImageSize:
00017000
c:\programme\cygwin\opt\kde2\bin\cygkab-3.dll                - ImageBase: 74d30000 ImageSize:
0005e000
c:\programme\cygwin\opt\kde2\bin\cygkbuildsycoca.dll         - ImageBase: 74cf0000 ImageSize:
0001d000
c:\programme\cygwin\opt\kde2\bin\cygkdecore-3.dll            - ImageBase: 74b30000 ImageSize:
00194000
c:\programme\cygwin\opt\kde2\bin\cygkdefakes-3.dll           - ImageBase: 74b00000 ImageSize:
00007000
c:\programme\cygwin\opt\kde2\bin\cygkdeprint-0.dll           - ImageBase: 74a50000 ImageSize:
00084000
c:\programme\cygwin\opt\kde2\bin\cygkdeprint_management-0.dll - ImageBase: 749b0000
ImageSize: 00075000
c:\programme\cygwin\opt\kde2\bin\cygkdesu-1.dll              - ImageBase: 74960000 ImageSize:
0002d000
c:\programme\cygwin\opt\kde2\bin\cygkdeui-3.dll              - ImageBase: 74750000 ImageSize:
001ee000
c:\programme\cygwin\opt\kde2\bin\cygkfile-3.dll              - ImageBase: 74690000 ImageSize:
0009c000
c:\programme\cygwin\opt\kde2\bin\cygkio-3.dll                - ImageBase: 74590000 ImageSize:
000d2000
c:\programme\cygwin\opt\kde2\bin\cygkjava-1.dll              - ImageBase: 74540000 ImageSize:
00027000
c:\programme\cygwin\opt\kde2\bin\cygkjs-1.dll                - ImageBase: 744d0000 ImageSize:
00044000
c:\programme\cygwin\opt\kde2\bin\cygkmedia2-0.dll            - ImageBase: 74480000 ImageSize:
00025000
c:\programme\cygwin\opt\kde2\bin\cygkmedia2_idl-0.dll        - ImageBase: 74400000 ImageSize:
00054000
c:\programme\cygwin\opt\kde2\bin\cygkmid-0.dll               - ImageBase: 743c0000 ImageSize:
0001b000
c:\programme\cygwin\opt\kde2\bin\cygkonq-3.dll               - ImageBase: 74300000 ImageSize:
0009c000
c:\programme\cygwin\opt\kde2\bin\cygkonqsidebartree_bookmarks-0.dll - ImageBase: 742d0000
ImageSize: 0000e000
c:\programme\cygwin\opt\kde2\bin\cygkparts-1.dll             - ImageBase: 74270000 ImageSize:
00033000
c:\programme\cygwin\opt\kde2\bin\cygkspell-3.dll             - ImageBase: 74220000 ImageSize:
00029000
c:\programme\cygwin\opt\kde2\bin\cygkssl-2.dll               - ImageBase: 741d0000 ImageSize:
0002e000
c:\programme\cygwin\opt\kde2\bin\cygksycoca-3.dll            - ImageBase: 740f0000 ImageSize:
000b9000
c:\programme\cygwin\opt\kde2\bin\cygktexteditor-0.dll        - ImageBase: 740c0000 ImageSize:
0000f000
c:\programme\cygwin\opt\kde2\bin\cygltdl-0.dll               - ImageBase: 74090000 ImageSize:
0000a000
c:\programme\cygwin\opt\kde2\bin\cygmcop-0.dll               - ImageBase: 73f60000 ImageSize:
00101000
c:\programme\cygwin\opt\kde2\bin\cygmcop_mt-0.dll            - ImageBase: 73f30000 ImageSize:
00007000
c:\programme\cygwin\opt\kde2\bin\cygqtmcop-0.dll             - ImageBase: 73ef0000 ImageSize:
0001f000
c:\programme\cygwin\opt\kde2\bin\cygsoundserver_idl-0.dll    - ImageBase: 73e70000 ImageSize:
0005a000
c:\programme\cygwin\opt\kde2\bin\cygxml2-2.dll               - ImageBase: 73dc0000 ImageSize:
00085000
c:\programme\cygwin\opt\kde2\bin\cygxslt-0.dll               - ImageBase: 73d70000 ImageSize:
00021000


Regards
Ralf


Attachment: rebase-list-option.dif
Description: Binary data

Attachment: rebase.cc
Description: Binary data

Attachment: Makefile
Description: Binary data

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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