|
Line 0
Link Here
|
|
|
1 |
--- cmake/dtrace.cmake.orig 2011-06-21 16:42:39.000000000 +0000 |
| 2 |
+++ cmake/dtrace.cmake 2011-07-27 11:49:47.214815458 +0000 |
| 3 |
@@ -34,13 +34,11 @@ |
| 4 |
FIND_PROGRAM(DTRACE dtrace) |
| 5 |
MARK_AS_ADVANCED(DTRACE) |
| 6 |
|
| 7 |
- # On FreeBSD, dtrace does not handle userland tracing yet |
| 8 |
- IF(DTRACE AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD" |
| 9 |
- AND NOT BUGGY_GCC_NO_DTRACE_MODULES) |
| 10 |
+ IF(DTRACE AND NOT BUGGY_GCC_NO_DTRACE_MODULES) |
| 11 |
SET(ENABLE_DTRACE ON CACHE BOOL "Enable dtrace") |
| 12 |
ENDIF() |
| 13 |
SET(HAVE_DTRACE ${ENABLE_DTRACE}) |
| 14 |
- IF(CMAKE_SYSTEM_NAME MATCHES "SunOS") |
| 15 |
+ IF(CMAKE_SYSTEM_NAME MATCHES "SunOS|FreeBSD") |
| 16 |
IF(CMAKE_SIZEOF_VOID_P EQUAL 4) |
| 17 |
SET(DTRACE_FLAGS -32 CACHE INTERNAL "DTrace architecture flags") |
| 18 |
ELSE() |
| 19 |
@@ -90,6 +88,10 @@ |
| 20 |
ENDIF() |
| 21 |
|
| 22 |
FUNCTION(DTRACE_INSTRUMENT target) |
| 23 |
+ # add libelf to the linker in the FreeBSD |
| 24 |
+ IF(ENABLE_DTRACE AND CMAKE_SYSTEM_NAME MATCHES "FreeBSD") |
| 25 |
+ TARGET_LINK_LIBRARIES(${target} elf) |
| 26 |
+ ENDIF() |
| 27 |
IF(BUGGY_GCC_NO_DTRACE_MODULES) |
| 28 |
GET_TARGET_PROPERTY(target_type ${target} TYPE) |
| 29 |
IF(target_type MATCHES "MODULE_LIBRARY") |
| 30 |
@@ -105,7 +107,7 @@ |
| 31 |
|
| 32 |
# On Solaris, invoke dtrace -G to generate object file and |
| 33 |
# link it together with target. |
| 34 |
- IF(CMAKE_SYSTEM_NAME MATCHES "SunOS") |
| 35 |
+ IF(CMAKE_SYSTEM_NAME MATCHES "SunOS|FreeBSD") |
| 36 |
SET(objdir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${target}.dir) |
| 37 |
SET(outfile ${objdir}/${target}_dtrace.o) |
| 38 |
GET_TARGET_PROPERTY(target_type ${target} TYPE) |
| 39 |
@@ -117,6 +119,7 @@ |
| 40 |
-DDFILE=${CMAKE_BINARY_DIR}/include/probes_mysql.d |
| 41 |
-DDTRACE_FLAGS=${DTRACE_FLAGS} |
| 42 |
-DDIRS=. |
| 43 |
+ -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} |
| 44 |
-DTYPE=${target_type} |
| 45 |
-P ${CMAKE_SOURCE_DIR}/cmake/dtrace_prelink.cmake |
| 46 |
WORKING_DIRECTORY ${objdir} |
| 47 |
@@ -152,13 +155,13 @@ |
| 48 |
# run them again through dtrace -G to generate an ELF file that links |
| 49 |
# to mysqld. |
| 50 |
MACRO (DTRACE_INSTRUMENT_STATIC_LIBS target libs) |
| 51 |
-IF(CMAKE_SYSTEM_NAME MATCHES "SunOS" AND ENABLE_DTRACE) |
| 52 |
+IF(CMAKE_SYSTEM_NAME MATCHES "SunOS|FreeBSD" AND ENABLE_DTRACE) |
| 53 |
# Filter out non-static libraries in the list, if any |
| 54 |
SET(static_libs) |
| 55 |
FOREACH(lib ${libs}) |
| 56 |
GET_TARGET_PROPERTY(libtype ${lib} TYPE) |
| 57 |
IF(libtype MATCHES STATIC_LIBRARY) |
| 58 |
- SET(static_libs ${static_lics} ${lib}) |
| 59 |
+ SET(static_libs ${static_libs} ${lib}) |
| 60 |
ENDIF() |
| 61 |
ENDFOREACH() |
| 62 |
|
| 63 |
@@ -177,6 +180,7 @@ |
| 64 |
-DDTRACE_FLAGS=${DTRACE_FLAGS} |
| 65 |
"-DDIRS=${dirs}" |
| 66 |
-DTYPE=MERGE |
| 67 |
+ -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} |
| 68 |
-P ${CMAKE_SOURCE_DIR}/cmake/dtrace_prelink.cmake |
| 69 |
VERBATIM |
| 70 |
) |