Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(141)

Issue 302630043: TBR: i#975 static DR: client existence and loading

Can't Edit
Can't Publish+Mail
Start Review
Created:
9 years, 9 months ago by bruening
Modified:
9 years, 9 months ago
Reviewers:
zhaoqin
CC:
dynamorio-devs_googlegroups.com
Visibility:
Public.

Description

Commit log for first patchset: --------------- i#975 static DR: client existence and loading Implements the proposed model for dynamorio_static: it allows any part of the app to acts as the client, but also looks for and invokes a dr_init or dr_client_main routine, supporting multiple methods of including a client in the application. Switches to accessing the client lib via the system loader when it's the same as the application on Windows (the code for Linux was added in the past). Replaces checks for !IS_INTERNAL_STRING_OPTION_EMPTY(client_lib) with a new macro CLIENTS_EXIST(), which is set to true for STATIC_LIBRARY. Sets -code_api to true for STATIC_LIBRARY by default, and sets its dependences via moving that code into options.c. For STATIC_LIBRARY, "loads" the app itself as the client, and makes the absence of an init routine non-fatal. Updates the static_startstop test and adds two new tests: static_noclient and static_noinit. ---------------

Patch Set 1 #

Patch Set 2 : Committed #

Unified diffs Side-by-side diffs Delta from patch set Stats (+187 lines, -145 lines) Patch
M core/arch/retcheck.c View 1 chunk +1 line, -1 line 0 comments Download
M core/dynamo.c View 1 chunk +1 line, -1 line 0 comments Download
M core/lib/instrument.c View 5 chunks +19 lines, -4 lines 0 comments Download
M core/module_list.c View 1 chunk +1 line, -1 line 0 comments Download
M core/options.h View 4 chunks +18 lines, -2 lines 0 comments Download
M core/options.c View 3 chunks +71 lines, -1 line 0 comments Download
M core/optionsx.h View 4 chunks +10 lines, -59 lines 0 comments Download
M core/unix/os.c View 1 chunk +4 lines, -0 lines 0 comments Download
M core/unix/signal.c View 1 chunk +1 line, -1 line 0 comments Download
M core/utils.c View 2 chunks +3 lines, -1 line 0 comments Download
M core/vmareas.c View 3 chunks +3 lines, -4 lines 0 comments Download
M core/win32/callback.c View 6 chunks +6 lines, -6 lines 0 comments Download
M core/win32/loader.c View 1 chunk +1 line, -1 line 0 comments Download
M core/win32/module_shared.c View 2 chunks +2 lines, -2 lines 0 comments Download
M core/win32/ntdll.h View 2 chunks +2 lines, -2 lines 0 comments Download
M core/win32/ntdll.c View 1 chunk +1 line, -1 line 0 comments Download
M core/win32/os.c View 2 chunks +2 lines, -4 lines 0 comments Download
M make/DynamoRIOConfig.cmake.in View 1 chunk +7 lines, -0 lines 0 comments Download
M suite/tests/CMakeLists.txt View 1 chunk +9 lines, -2 lines 0 comments Download
A + suite/tests/api/static_noclient.c View 2 chunks +5 lines, -34 lines 0 comments Download
A + suite/tests/api/static_noclient.expect View 0 chunks +-1 lines, --1 lines 0 comments Download
A + suite/tests/api/static_noinit.c View 3 chunks +9 lines, -15 lines 0 comments Download
A suite/tests/api/static_noinit.expect View 1 chunk +6 lines, -0 lines 0 comments Download
M suite/tests/api/static_startstop.c View 2 chunks +3 lines, -4 lines 0 comments Download
M suite/tests/api/static_startstop.expect View 1 chunk +2 lines, -0 lines 0 comments Download
M tools/CMakeLists.txt View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 2
bruening
9 years, 9 months ago (2016-08-31 06:41:11 UTC) #1
bruening
9 years, 9 months ago (2016-08-31 06:41:15 UTC) #2
Committed as
https://github.com/DynamoRIO/dynamorio/commit/c2680193576b3c951b0ea06feaf80df...

Final commit log: 
---------------
i#975 static DR: client existence and loading

Implements the proposed model for dynamorio_static: it allows any part of
the app to acts as the client, but also looks for and invokes a dr_init or
dr_client_main routine, supporting multiple methods of including a client
in the application.

Switches to accessing the client lib via the system loader when it's the
same as the application on Windows (the code for Linux was added in the
past).

Replaces checks for !IS_INTERNAL_STRING_OPTION_EMPTY(client_lib) with a new
macro CLIENTS_EXIST(), which is set to true for STATIC_LIBRARY.

Sets -code_api to true for STATIC_LIBRARY by default, and sets its
dependences via moving that code into options.c.

For STATIC_LIBRARY, "loads" the app itself as the client, and makes the
absence of an init routine non-fatal.

Updates the static_startstop test and adds two new tests: static_noclient
and static_noinit.

Review-URL: https://codereview.appspot.com/302630043
---------------
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b