Skip to content

Commit f8d896f

Browse files
author
Vladislav Vaintroub
committed
use systemtap on linux if installed, for dtrace functionality
1 parent 221c879 commit f8d896f

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

cmake/dtrace.cmake

+15-4
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ MACRO (DTRACE_HEADER provider header header_no_dtrace)
4141
ADD_CUSTOM_COMMAND(
4242
OUTPUT ${header} ${header_no_dtrace}
4343
COMMAND ${DTRACE} -h -s ${provider} -o ${header}
44-
COMMAND perl ${CMAKE_SOURCE_DIR}/scripts/dheadgen.pl -f ${provider} > ${header_no_dtrace}
44+
COMMAND perl ${CMAKE_SOURCE_DIR}/scripts/dheadgen.pl -f ${provider} > ${header_no_dtrace}
4545
DEPENDS ${provider}
4646
)
4747
ENDIF()
@@ -57,6 +57,13 @@ IF(ENABLE_DTRACE)
5757
${CMAKE_BINARY_DIR}/include/probes_mysql_dtrace.h
5858
${CMAKE_BINARY_DIR}/include/probes_mysql_nodtrace.h
5959
)
60+
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
61+
# Systemtap object
62+
EXECUTE_PROCESS(
63+
COMMAND ${DTRACE} -G -s ${CMAKE_SOURCE_DIR}/include/probes_mysql.d.base
64+
-o ${CMAKE_BINARY_DIR}/probes_mysql.o
65+
)
66+
ENDIF()
6067
ADD_CUSTOM_TARGET(gen_dtrace_header
6168
DEPENDS
6269
${CMAKE_BINARY_DIR}/include/probes_mysql.d
@@ -66,12 +73,16 @@ IF(ENABLE_DTRACE)
6673
ENDIF()
6774

6875

69-
MACRO (DTRACE_INSTRUMENT target)
76+
MACRO(DTRACE_INSTRUMENT target)
7077
IF(ENABLE_DTRACE)
7178
ADD_DEPENDENCIES(${target} gen_dtrace_header)
7279

73-
# On Solaris, invoke dtrace -G to generate object file and
74-
# link it together with target.
80+
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
81+
TARGET_LINK_LIBRARIES(${target} ${CMAKE_BINARY_DIR}/probes_mysql.o)
82+
ENDIF()
83+
84+
# On Solaris, invoke dtrace -G to generate object file and
85+
# link it together with target.
7586
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS")
7687
SET(objdir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${target}.dir)
7788
SET(outfile ${objdir}/${target}_dtrace.o)

0 commit comments

Comments
 (0)