Subject: Re: MUCH faster cygwin dll
From: [email-masked] (Christopher Faylor)

19 Feb 1998 02:28:29 -0800
Message-ID: <[email-masked]>
To: [email-masked]
Cc: [email-masked]

>From: [email-masked] (root)
>Date: Wed, 18 Feb 1998 15:27:00 +0100 (MET)
>
>Mr Faylor writes:
>>
>>I just noticed this too.  This seems to occur when two dlls try to
>>occupy the the same base address.  I tried using 0x61000000 instead, as
>>someone else mentioned.  That seemed to work better.
>
>This is kind of ridiculous.  If I understand correctly this
>correspondece, this means that you are relocating the dlls by hand
>instead of letting the operating system decide where to load them with
>changing addressing conditions?

Well, I guess you do understand correctly about what we are doing.  We
are talking about relocating the dlls by hand right now.  We're trying
to find a location that doesn't conflict with other dlls.

I was under the impression that most people would realize that we are
experimenting with ways to increase the performance of linking in dlls.
If *I* have given people the idea that this is something they need to run
out and do, I certainly apologize.  If somehow, someone has come to
the conclusion that future versions of cygwin will have to be relocated
by hand, then, again, I apologize for contributing to their continued
confusion.

>Normally, for all windows programs, there exists a .reloc section in
>the executable, that tells the loader the relative location of all
>pointers in the image.  Then, the loader can put the new dll anywhere
>in the addressing space of the vm it wants to load it in.

No?  Really?  The loader is that smart?  I was just getting ready to
write my own GUI loader program that popped up a dialog with something like:

	About to load KERNEL32.DLL

	Enter load address: [__________________]

Now you're telling me that the OS will do all this for me.  Amazing.

>It seems then that acknowledging that gnu's linker is broken you have
>returned to the 'solution' of moving your dlls around by yourself and
>replacing the system loader.

How are we acknowledging that gnu's linker is broken again?  I missed
that part.  I thought this thread started with someone commenting on
the slowness of linking in dlls.

>This will never work OK of course, but it is a better solution than
>nothing.  If you say it like this in the list however, people will
>think that this is
>>                               *normal*
>imagine.  That for loading a dll you have to tell the system the
>hexadecimal address of where you want it loaded.  What a user friendly
>environment!!!!
>
>"Installation instruction for my software written using cygnus:
>>...  Before using my program, please figure out (in hexadecimal) the
>>address where you want it loaded in the vm's virtual space.  If you do
>>not know what a dll or an address is, well then...

One of the problems with sarcasm is that it fails miserably when it comes
from someone who has completely missed the point.
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".