This is an archive of the discontinued LLVM Phabricator instance.

[compiler-rt] Add support for interception redirect exports.
ClosedPublic

Authored by etienneb on Jul 27 2016, 11:35 AM.

Details

Summary

On windows, an export can be redirected to an other DLL.
This patch is adding the required support to the internal
GetProcAddress implementation.

This case was encountered by instrumenting chromium (win 64-bits)
using this GN configuration:

is_component_build = true
is_debug = false
enable_nacl = false
is_clang = true
is_asan = true
clang_base_path = "d:\src\llvm\ninja64"
clang_use_chrome_plugins = false
clang_version = "4.0.0"

The operating system is win7 (x64).
Visual Studio: 2015 Professional

Diff Detail

Event Timeline

etienneb updated this revision to Diff 65782.Jul 27 2016, 11:35 AM
etienneb retitled this revision from to [compiler-rt] Add support for interception redirect exports..
etienneb updated this object.
etienneb added a reviewer: rnk.
etienneb added subscribers: chrisha, llvm-commits.
rnk accepted this revision.Jul 27 2016, 1:15 PM
rnk edited edge metadata.

lgtm Can you mention what environment this happens in, for posterity? I'm assuming this is related to the explosion of kernel32.dll into all those little api set dlls. That happened in Win8, right?

This revision is now accepted and ready to land.Jul 27 2016, 1:15 PM
etienneb updated this object.Jul 28 2016, 8:57 AM
etienneb edited edge metadata.
In D22880#498158, @rnk wrote:

lgtm Can you mention what environment this happens in, for posterity? I'm assuming this is related to the explosion of kernel32.dll into all those little api set dlls. That happened in Win8, right?

No, it's win7.
And yes, it's redirection through these splitted DLLs.

I added the system description to the patch information.

etienneb closed this revision.Jul 31 2016, 11:04 AM