Status: Accepted
Owner: [email protected]
CC: [email protected], [email protected], [email protected],
[email protected]
Labels: Type-Enhancement Priority-Medium OpSys-Windows
New issue 332 by [email protected]: [Windows] Revisit how the RTL handles
multi-module apps
http://code.google.com/p/address-sanitizer/issues/detail?id=332
We should probably revisit how the RTL handles multi-module apps.
Currently, the main module (.EXE) statically links in the RTL and all the
other modules (.DLLs, basically) statically link with a simple thunk .LIB
that delegates all the ASan interface calls to the RTL in the main module.
[See issue 209 for more background]
This works mostly well in practice, but makes deployment slightly more
complex.
Namely, one has to use clang as a linker for DLLs or pass the path to the
thunk .LIB to the link.exe invocations.
COFF .OBJ files have a directive that allows us to specify implicit .LIB
dependencies, but unfortunately the same .OBJ file might be used in an .EXE
and a .DLL, thus we can't use the directive with the current structure of
the RTL.
Reid has suggested me to restructure the RTL like this:
- put the RTL into a .DLL
- all the modules (.EXE, .DLL, etc) should statically link with a
thunk .LIB that forwards all the interface calls to the RTL DLL.
- put a directive to implicitly link the thunk .LIB into all the
address-sanitized .OBJ files
This sounds mostly good, but I wonder how would it affect usability?
Basically, which process should put the ASan RTL DLL next to the .EXE?
Is there a directive for that?
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.