From 942ee56e4e62e74d1a42b40bc48f8850465b4e02 Mon Sep 17 00:00:00 2001 From: go2432 Date: Fri, 14 Oct 2022 21:14:04 -0500 Subject: [PATCH 1/2] Build on Ubuntu 22 with GNU 11.2 --- src/pcsr/PCSR.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pcsr/PCSR.h b/src/pcsr/PCSR.h index e426133..59641b0 100644 --- a/src/pcsr/PCSR.h +++ b/src/pcsr/PCSR.h @@ -10,6 +10,10 @@ #include "hybridLock.h" +// Build on Ubuntu 22 with GNU 11.2.0 +#include +#include + using namespace std; #ifndef PCSR2_PCSR_H #define PCSR2_PCSR_H From dc0ef8ce0ff08dea040dcdf10692e9d0f4fbac09 Mon Sep 17 00:00:00 2001 From: Gregory Schwing Date: Sun, 23 Oct 2022 19:46:36 -0500 Subject: [PATCH 2/2] need to see if I can cmake build vcgpu without ppcsr first --- CMakeLists.txt | 15 +++--- CMakeLists_For_Isolated_EXE.txt | 82 +++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 7 deletions(-) create mode 100644 CMakeLists_For_Isolated_EXE.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 25333d1..9f5221f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ set(CMAKE_CXX_FLAGS "-std=c++14 -ansi -pedantic-errors -Wall -Wextra -pthread") set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") set(CMAKE_CXX_FLAGS_RELEASE "-O3") -set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src) +set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/parallel-packed-csr/src) file(GLOB_RECURSE parallel-packed-csr_SOURCES "${PROJECT_SOURCE_DIR}/*.cpp") file(GLOB_RECURSE parallel-packed-csr_HEADERS "${PROJECT_SOURCE_DIR}/*.h") @@ -22,7 +22,7 @@ set(PROJECT_TEST_DIR ${CMAKE_SOURCE_DIR}/test) file(GLOB_RECURSE parallel-packed-csr_TEST_SOURCES "${PROJECT_TEST_DIR}/*.cpp") file(GLOB_RECURSE parallel-packed-csr_TEST_HEADERS "${PROJECT_TEST_DIR}/*.h") -include(${CMAKE_SOURCE_DIR}/cmake/modules/clang-format.cmake) +include(${CMAKE_SOURCE_DIR}/parallel-packed-csr/cmake/modules/clang-format.cmake) set(parallel-packed-csr_INCLUDE_DIRS "") foreach (_headerFile ${parallel-packed-csr_HEADERS}) @@ -31,14 +31,15 @@ foreach (_headerFile ${parallel-packed-csr_HEADERS}) endforeach () list(REMOVE_DUPLICATES parallel-packed-csr_INCLUDE_DIRS) -add_executable(parallel-packed-csr ${parallel-packed-csr_SOURCES}) -target_include_directories(parallel-packed-csr PRIVATE ${parallel-packed-csr_INCLUDE_DIRS}) - set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) -target_link_libraries(parallel-packed-csr PRIVATE Threads::Threads numa) list(REMOVE_ITEM parallel-packed-csr_SOURCES ${PROJECT_SOURCE_DIR}/main.cpp) + +add_library(parallel-packed-csr ${parallel-packed-csr_SOURCES}) +target_include_directories(parallel-packed-csr PRIVATE ${parallel-packed-csr_INCLUDE_DIRS}) +target_link_libraries(parallel-packed-csr PRIVATE Threads::Threads numa) + add_executable(tests ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES}) add_executable(tests-tsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES}) add_executable(tests-ubsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES}) @@ -51,7 +52,7 @@ if (GTEST_FOUND) target_link_libraries(tests-tsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX) target_link_libraries(tests-ubsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX) else() - include(${CMAKE_SOURCE_DIR}/cmake/CPM.cmake) + include(${CMAKE_SOURCE_DIR}/parallel-packed-csr/cmake/CPM.cmake) CPMAddPackage( NAME googletest GITHUB_REPOSITORY google/googletest diff --git a/CMakeLists_For_Isolated_EXE.txt b/CMakeLists_For_Isolated_EXE.txt new file mode 100644 index 0000000..25333d1 --- /dev/null +++ b/CMakeLists_For_Isolated_EXE.txt @@ -0,0 +1,82 @@ +cmake_minimum_required(VERSION 3.8 FATAL_ERROR) +set(CMAKE_VERBOSE_MAKEFILE ON) + +project(parallel-packed-csr VERSION 0.1 LANGUAGES CXX) + +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif () + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_FLAGS "-std=c++14 -ansi -pedantic-errors -Wall -Wextra -pthread") +set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") +set(CMAKE_CXX_FLAGS_RELEASE "-O3") + +set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src) + +file(GLOB_RECURSE parallel-packed-csr_SOURCES "${PROJECT_SOURCE_DIR}/*.cpp") +file(GLOB_RECURSE parallel-packed-csr_HEADERS "${PROJECT_SOURCE_DIR}/*.h") + +set(PROJECT_TEST_DIR ${CMAKE_SOURCE_DIR}/test) + +file(GLOB_RECURSE parallel-packed-csr_TEST_SOURCES "${PROJECT_TEST_DIR}/*.cpp") +file(GLOB_RECURSE parallel-packed-csr_TEST_HEADERS "${PROJECT_TEST_DIR}/*.h") + +include(${CMAKE_SOURCE_DIR}/cmake/modules/clang-format.cmake) + +set(parallel-packed-csr_INCLUDE_DIRS "") +foreach (_headerFile ${parallel-packed-csr_HEADERS}) + get_filename_component(_dir ${_headerFile} PATH) + list(APPEND parallel-packed-csr_INCLUDE_DIRS ${_dir}) +endforeach () +list(REMOVE_DUPLICATES parallel-packed-csr_INCLUDE_DIRS) + +add_executable(parallel-packed-csr ${parallel-packed-csr_SOURCES}) +target_include_directories(parallel-packed-csr PRIVATE ${parallel-packed-csr_INCLUDE_DIRS}) + +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) +target_link_libraries(parallel-packed-csr PRIVATE Threads::Threads numa) + +list(REMOVE_ITEM parallel-packed-csr_SOURCES ${PROJECT_SOURCE_DIR}/main.cpp) +add_executable(tests ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES}) +add_executable(tests-tsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES}) +add_executable(tests-ubsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES}) + +find_package(GTest) +find_package(OpenMP REQUIRED) +if (GTEST_FOUND) + include_directories(${GTEST_INCLUDE_DIRS}) + target_link_libraries(tests ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX) + target_link_libraries(tests-tsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX) + target_link_libraries(tests-ubsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX) +else() + include(${CMAKE_SOURCE_DIR}/cmake/CPM.cmake) + CPMAddPackage( + NAME googletest + GITHUB_REPOSITORY google/googletest + GIT_TAG release-1.8.1 + VERSION 1.8.1 + OPTIONS + "INSTALL_GTEST OFF" + "gtest_force_shared_crt ON" + ) + target_link_libraries(tests gtest gtest_main gmock pthread numa OpenMP::OpenMP_CXX) + target_link_libraries(tests-tsan gtest gtest_main gmock pthread numa OpenMP::OpenMP_CXX) + target_link_libraries(tests-ubsan gtest gtest_main gmock pthread numa OpenMP::OpenMP_CXX) +endif() + +target_include_directories(tests PRIVATE ${parallel-packed-csr_INCLUDE_DIRS} ${PROJECT_TEST_DIR}) +target_include_directories(tests-tsan PRIVATE ${parallel-packed-csr_INCLUDE_DIRS} ${PROJECT_TEST_DIR}) +target_include_directories(tests-ubsan PRIVATE ${parallel-packed-csr_INCLUDE_DIRS} ${PROJECT_TEST_DIR}) + +target_compile_options(tests-tsan PRIVATE -fsanitize=thread -g -O1) +target_link_options(tests-tsan PRIVATE -fsanitize=thread -g -O1) + +target_compile_options(tests-ubsan PRIVATE -fsanitize=undefined -g -O1) +target_link_options(tests-ubsan PRIVATE -fsanitize=undefined -g -O1) + +include (CTest) +gtest_discover_tests(tests) +gtest_discover_tests(tests-tsan TEST_SUFFIX -tsan) +gtest_discover_tests(tests-ubsan TEST_SUFFIX -ubsan)