Patrick Haller wrote:
> On Mon, 05 Jun 2000 04:36:03 -0500, David Elliott wrote:
>
[snip]
>
> >After making the above changes, IE 5.01 finally loads without crashing
> >before I see a window. Of course the toolbars still don't look quite right,
> >but a little better.
> That's great. Which native DLLs did you put in instead of the ones supplied by ODIN
>? IE5 requires a ton of
> undocumented code in SHELL32, SHLWAPI, COMCTL32 which might not completely be
>available in ODIN.
>
Actually, Wine under Linux 2.2.15 (on a mostly stock RedHat 6.2 system), not Odin, but
I suppose the projects are
starting to merge enough now that there is not too much of a difference.
shell/shell32,commctrl/comctl32,commdlg/comdlg32 were all Wine DLLs. I still can't
get wine to work with native of
any of these when loading IE 5.01. Any other program works fine, but IE 5.01 does
something strange and Wine then
can't load the native versions of these. (see below)
> >Finally, one more thing. Ever since ASS, I haven't been able to load native
> >DLLs with IE 5.01. Almost every other program works fine, but I get
> >messages that it needs to relocate the DLLs. Now it seems very odd that
> >right before ASS it didn't have to relocate them, but right after it, it
> >does.
>
> >It also refuses to load because it needs to relocate system DLLs over
> >2GB address space. So why the heck does it need to relocate it? What is
> >taking up the space where it is supposed to go???
> OS/2 WSeB / Warp 4 + FP13 have up to 3GB address space per process. And ODIN's PE
>loader actually uses the high
> memory support. Win32 however, does not support anything beyond 2GB. But a major
>problem with Win32 OS-libraries
> is that Microsoft build those DLLs using based linking. This is, system DLLs get
>placed at specific fixed
> addresses. One more reason for us to provide those system DLLs with ODIN as native
>LX versions, although they're
> not complete yet.
>
Well yes, I understand that, but my problem is why in the hell would it work for every
other program except for
IE 5.01. Apparently there is something about IE that takes up the memory where the
system DLL is supposed to go.
I am not exactly sure how to debug that either. Is IE actually linked to these DLLs or
does it LoadLibrary them?
If it does a LoadLibrary then I could maybe see it allocating some memory and then
going to load the DLL, but the
allocated memory was allocated where the DLL is supposed to go. Maybe reserving the
area of address space where
system DLLs could possibly be loaded would be a good idea? Of course this means that
any program not using the
DLL would not get access to that particular address portion, but with 4 GBs of space,
that can't be that big of a
loss.
It is my understanding that the high 2GB is used for apps and the low 2GB is for
system DLLs. So if you just
allocate memory in the high 2GB first, and reserve the low for loading system DLLs
only, then it shouldn't be a
problem. Of course, I have no idea how trivial that is to implement.
-Dave