-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cryptoconditions (RIPD-1139) #2170
Changes from all commits
97ad7cd
28e2d3d
3c65dc8
cf508e4
ffe0dcd
f1abd26
219e2ed
36cdb54
6690498
ea2110b
61ce559
448be67
8ed3a38
1be08b9
ad0de5e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -517,20 +517,28 @@ endmacro() | |
|
||
macro(setup_build_boilerplate) | ||
if (NOT WIN32 AND san) | ||
add_compile_options(-fsanitize=${san} -fno-omit-frame-pointer) | ||
STRING(REPLACE ";" "," comma_san "${san}") | ||
add_compile_options(-fsanitize=${comma_san} -fno-omit-frame-pointer) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there a reason we can't spec to pass a comma on the command line instead of the semicolon? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. There are places where we want to treat |
||
|
||
append_flags(CMAKE_EXE_LINKER_FLAGS | ||
-fsanitize=${san}) | ||
-fsanitize=${comma_san}) | ||
|
||
string(TOLOWER ${san} ci_san) | ||
if (${ci_san} STREQUAL address) | ||
set(SANITIZER_LIBRARIES asan) | ||
add_definitions(-DSANITIZER=ASAN) | ||
endif() | ||
if (${ci_san} STREQUAL thread) | ||
set(SANITIZER_LIBRARIES tsan) | ||
add_definitions(-DSANITIZER=TSAN) | ||
endif() | ||
foreach(cur_san ${san}) | ||
string(TOLOWER ${cur_san} ci_san) | ||
if (${ci_san} STREQUAL address) | ||
# set(SANITIZER_LIBRARIES asan) | ||
add_definitions(-DSANITIZER=ASAN) | ||
endif() | ||
if (${ci_san} STREQUAL thread) | ||
# set(SANITIZER_LIBRARIES tsan) | ||
add_definitions(-DSANITIZER=TSAN) | ||
endif() | ||
if (${ci_san} STREQUAL fuzzer) | ||
add_compile_options(-fsanitize-coverage=trace-pc-guard) | ||
append_flags(CMAKE_EXE_LINKER_FLAGS | ||
-fsanitize-coverage=trace-pc-guard) | ||
endif() | ||
endforeach() | ||
endif() | ||
|
||
if (perf) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -465,16 +465,18 @@ if (WIN32 OR is_xcode) | |
endif() | ||
|
||
if(unity) | ||
add_executable(rippled ${rippled_src_unity} ${PROTO_HDRS}) | ||
add_executable(rippled_classic EXCLUDE_FROM_ALL ${rippled_src_nonunity} ${PROTO_HDRS}) | ||
set(other_target rippled_classic) | ||
add_executable(rippled ${rippled_src_unity} ${PROTO_HDRS}) | ||
add_executable(rippled_classic EXCLUDE_FROM_ALL ${rippled_src_nonunity} ${PROTO_HDRS}) | ||
set(other_target rippled_classic) | ||
else() | ||
add_executable(rippled ${rippled_src_nonunity} ${PROTO_HDRS}) | ||
add_executable(rippled_unity EXCLUDE_FROM_ALL ${rippled_src_unity} ${PROTO_HDRS}) | ||
set(other_target rippled_unity) | ||
add_executable(rippled ${rippled_src_nonunity} ${PROTO_HDRS}) | ||
add_executable(rippled_unity EXCLUDE_FROM_ALL ${rippled_src_unity} ${PROTO_HDRS}) | ||
set(other_target rippled_unity) | ||
endif() | ||
|
||
list(APPEND targets "rippled") | ||
list(APPEND targets ${other_target}) | ||
|
||
# Not the same as EXCLUDE_FROM_ALL. Prevents Visual Studio from building the | ||
# other_target when the user builds the solution (default when pressing <F7>) | ||
set_property(TARGET ${other_target} PROPERTY EXCLUDE_FROM_DEFAULT_BUILD true) | ||
|
@@ -530,11 +532,45 @@ set_startup_project(rippled) | |
|
||
foreach(target IN LISTS targets) | ||
target_link_libraries(${target} | ||
${OPENSSL_LIBRARIES} ${PROTOBUF_LIBRARIES} ${SANITIZER_LIBRARIES}) | ||
${OPENSSL_LIBRARIES} ${PROTOBUF_LIBRARIES}) | ||
|
||
link_common_libraries(${target}) | ||
endforeach() | ||
|
||
if (fuzzer_conditions) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think there is much need for a user-defined variable for this since you can just set it based on the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to keep this variable. If we add other fuzzers I think we want to control which fuzzers we are building. I don't mind the slightly clunkier build step for this because it's an uncommon build target. |
||
set(FuzzerSrc | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/Condition.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/DerCommon.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/DerTraits.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/DerCoder.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/Ed25519.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/error.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/Fulfillment.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/PrefixSha256.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/PreimageSha256.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/RsaSha256.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/conditions/impl/ThresholdSha256.cpp | ||
|
||
${CMAKE_SOURCE_DIR}/src/ripple/basics/impl/contract.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/basics/impl/Log.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/beast/utility/src/beast_Journal.cpp | ||
${CMAKE_SOURCE_DIR}/src/ripple/basics/impl/Time.cpp | ||
${CMAKE_SOURCE_DIR}/src/fuzzers/Conditions_fuzz_test.cpp) | ||
|
||
add_with_props(FuzzerSrc src/ripple/unity/ed25519_donna.c | ||
-I"${CMAKE_SOURCE_DIR}/"src/ed25519-donna) | ||
|
||
add_executable(fulfillment_fuzzer ${FuzzerSrc}) | ||
target_link_libraries(fulfillment_fuzzer ${OPENSSL_LIBRARIES}) | ||
link_common_libraries(fulfillment_fuzzer) | ||
target_compile_definitions(fulfillment_fuzzer PUBLIC -DFUZZ_TEST_FULFILLMENT) | ||
|
||
add_executable(condition_fuzzer ${FuzzerSrc}) | ||
target_link_libraries(condition_fuzzer ${OPENSSL_LIBRARIES}) | ||
link_common_libraries(condition_fuzzer) | ||
target_compile_definitions(condition_fuzzer PUBLIC -DFUZZ_TEST_CONDITION) | ||
endif() | ||
|
||
if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8) | ||
message(WARNING "Rippled requires a 64 bit target architecture.\n" | ||
"The most likely cause of this warning is trying to build rippled with a 32-bit OS.") | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The commit message is marked fold, but please don't lose the instructions for the fuzzer when this is squashed.