Hello, I have been trying to test Firefox and OpenOffice under ReactOS and it seems to be having trouble looking up mangled names in msvcrt. Firefox fails like this
(NTDLL:ldr/utils.c:1205) LdrGetExportByName(): failed to find ??3@YAXPAX@Z
and OpenOffice fails to find this name ??1type_info@@UAE@XZ
Both of them are implemented and point to code I imported from Wine a long time ago. Anyone have any idea whats up?
Thanks Steven
__________________________________ Do you Yahoo!? Yahoo! Mail - You care about security. So do we. http://promotions.yahoo.com/new_mail
Steven Edwards wrote:
Hello, I have been trying to test Firefox and OpenOffice under ReactOS and it seems to be having trouble looking up mangled names in msvcrt. Firefox fails like this
(NTDLL:ldr/utils.c:1205) LdrGetExportByName(): failed to find ??3@YAXPAX@Z
and OpenOffice fails to find this name ??1type_info@@UAE@XZ
Both of them are implemented and point to code I imported from Wine a long time ago. Anyone have any idea whats up?
These exported names are truncated by --kill-at flag of dlltool. Attached patch should fix the problem.
[ChangeLog] * tools/helper.mk (TARGET_MANGLED): New variable. * lib/coredll/Makefile: Export mangled names from dll. * lib/crtdll/makefile: Ditto. * lib/msvcrt/Makefile: Ditto. * lib/msvcrt20/Makefile: Ditto.
Is --kill-at even needed?
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of d_layer Sent: 27. september 2004 09:48 To: ReactOS Development List Subject: Re: [ros-dev] Problem looking up mangled names
Steven Edwards wrote:
Hello, I have been trying to test Firefox and OpenOffice under
ReactOS and it
seems to be having trouble looking up mangled names in
msvcrt. Firefox
fails like this
(NTDLL:ldr/utils.c:1205) LdrGetExportByName(): failed to find ??3@YAXPAX@Z
and OpenOffice fails to find this name ??1type_info@@UAE@XZ
Both of them are implemented and point to code I imported
from Wine a
long time ago. Anyone have any idea whats up?
These exported names are truncated by --kill-at flag of dlltool. Attached patch should fix the problem.
[ChangeLog]
- tools/helper.mk (TARGET_MANGLED): New variable.
- lib/coredll/Makefile: Export mangled names from dll.
- lib/crtdll/makefile: Ditto.
- lib/msvcrt/Makefile: Ditto.
- lib/msvcrt20/Makefile: Ditto.
-- d_layer
Without --kill-at the name in the .dlls export section will include the @.. stuff, so user32.dll would export MessageBoxW@16 instead of MessageBoxW. This will make apps expecting to find MessageBoxW very unhappy.
Ge van Geldorp.
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of Casper Hornstrup Sent: Monday, September 27, 2004 19:33 To: 'ReactOS Development List' Subject: RE: [ros-dev] Problem looking up mangled names
Is --kill-at even needed?
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of d_layer Sent: 27. september 2004 09:48 To: ReactOS Development List Subject: Re: [ros-dev] Problem looking up mangled names
Steven Edwards wrote:
Hello, I have been trying to test Firefox and OpenOffice under
ReactOS and it
seems to be having trouble looking up mangled names in
msvcrt. Firefox
fails like this
(NTDLL:ldr/utils.c:1205) LdrGetExportByName(): failed to find ??3@YAXPAX@Z
and OpenOffice fails to find this name ??1type_info@@UAE@XZ
Both of them are implemented and point to code I imported
from Wine a
long time ago. Anyone have any idea whats up?
These exported names are truncated by --kill-at flag of dlltool. Attached patch should fix the problem.
[ChangeLog]
- tools/helper.mk (TARGET_MANGLED): New variable.
- lib/coredll/Makefile: Export mangled names from dll.
- lib/crtdll/makefile: Ditto.
- lib/msvcrt/Makefile: Ditto.
- lib/msvcrt20/Makefile: Ditto.
-- d_layer
Ros-dev mailing list Ros-dev@reactos.com http://reactos.com:8080/mailman/listinfo/ros-dev
So what do you do if you have a DLL that needs to do both (eg. export MessageBoxW and a mangled name)?
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of Ge van Geldorp Sent: 27. september 2004 19:46 To: 'ReactOS Development List' Subject: RE: [ros-dev] Problem looking up mangled names
Without --kill-at the name in the .dlls export section will include the @.. stuff, so user32.dll would export MessageBoxW@16 instead of MessageBoxW. This will make apps expecting to find MessageBoxW very unhappy.
Ge van Geldorp.
Then you have to create a .def file which does the necessary translations by hand and don't use --kill-at
e.g.
EXPORTS NameExportedWithoutAt=NameExportedWithoutAt@0 NameExportedWithAt@0
Ge.
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of Casper Hornstrup Sent: Monday, September 27, 2004 20:16 To: 'ReactOS Development List' Subject: RE: [ros-dev] Problem looking up mangled names
So what do you do if you have a DLL that needs to do both (eg. export MessageBoxW and a mangled name)?
--- Ge van Geldorp gvg@reactos.com wrote:
Without --kill-at the name in the .dlls export section will include the @.. stuff, so user32.dll would export MessageBoxW@16 instead of MessageBoxW. This will make apps expecting to find MessageBoxW very unhappy.
Ge van Geldorp.
Using a .def file is the proper way to get an unmangled exported name, not a command-line option.
ShadowFlare
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
--- d_layer dome@koganet.ne.jp wrote:
These exported names are truncated by --kill-at flag of dlltool. Attached patch should fix the problem.
[ChangeLog]
- tools/helper.mk (TARGET_MANGLED): New variable.
- lib/coredll/Makefile: Export mangled names from dll.
- lib/crtdll/makefile: Ditto.
- lib/msvcrt/Makefile: Ditto.
- lib/msvcrt20/Makefile: Ditto.
Hi,
I will try your patch this evening.
Thanks Steven
_______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com
Steven Edwards wrote:
Hello, I have been trying to test Firefox and OpenOffice under ReactOS and it seems to be having trouble looking up mangled names in msvcrt. Firefox fails like this
(NTDLL:ldr/utils.c:1205) LdrGetExportByName(): failed to find ??3@YAXPAX@Z
and OpenOffice fails to find this name ??1type_info@@UAE@XZ
Both of them are implemented and point to code I imported from Wine a long time ago. Anyone have any idea whats up?
The problem is that the part of the mangled name after the '@' character is stripped because of the --kill-at flag used while building msvcrt.
Regards, Filip