Skip to content

Commit 1130bd6

Browse files
committed
fix linker
1 parent c93eaad commit 1130bd6

File tree

4 files changed

+17
-11
lines changed

4 files changed

+17
-11
lines changed

Diff for: .github/workflows/main.yml

+8-8
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
4444
sudo apt-get update
4545
sudo apt-get install gcc-13 g++-13
46-
sudo apt-get install ninja-build
46+
sudo apt-get install ninja-build mold
4747
sudo apt-get install mpich
4848
sudo apt-get install libomp-dev
4949
sudo apt-get install valgrind
@@ -56,7 +56,7 @@ jobs:
5656
- name: CMake configure
5757
run: >
5858
cmake -S . -B build
59-
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
59+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -DENABLE_MOLD=ON
6060
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
6161
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
6262
-D CMAKE_BUILD_TYPE=RELEASE
@@ -122,7 +122,7 @@ jobs:
122122
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
123123
sudo apt-get update
124124
sudo apt-get install gcc-13 g++-13
125-
sudo apt-get install ninja-build
125+
sudo apt-get install ninja-build mold
126126
sudo apt-get install mpich
127127
sudo apt-get install libomp-dev
128128
sudo apt-get install valgrind
@@ -135,7 +135,7 @@ jobs:
135135
- name: CMake configure
136136
run: >
137137
cmake -S . -B build
138-
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
138+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -DENABLE_MOLD=ON
139139
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
140140
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
141141
-D CMAKE_BUILD_TYPE=RELEASE
@@ -887,7 +887,7 @@ jobs:
887887
run: |
888888
sudo apt-get update
889889
sudo apt-get install gcc g++
890-
sudo apt-get install ninja-build
890+
sudo apt-get install ninja-build mold
891891
sudo apt-get install mpich
892892
sudo apt-get install libomp-dev
893893
sudo apt-get install valgrind
@@ -896,7 +896,7 @@ jobs:
896896
run: >
897897
cmake -S . -B build
898898
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
899-
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
899+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -DENABLE_MOLD=ON
900900
-D CMAKE_BUILD_TYPE=RELEASE
901901
-D CMAKE_VERBOSE_MAKEFILE=ON
902902
-D USE_COVERAGE=ON
@@ -962,7 +962,7 @@ jobs:
962962
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
963963
sudo apt-get update
964964
sudo apt-get install gcc-12 g++-12
965-
sudo apt-get install ninja-build
965+
sudo apt-get install ninja-build mold
966966
sudo apt-get install mpich
967967
sudo apt-get install libomp-dev
968968
sudo apt-get install valgrind
@@ -975,7 +975,7 @@ jobs:
975975
- name: CMake configure
976976
run: >
977977
cmake -S . -B build
978-
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
978+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -DENABLE_MOLD=ON
979979
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
980980
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
981981
-D CMAKE_BUILD_TYPE=RELEASE

Diff for: cmake/configure.cmake

+7
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ endif( MSVC )
4949

5050
add_compile_definitions(PPC_PATH_TO_PROJECT="${CMAKE_CURRENT_SOURCE_DIR}")
5151

52+
option(ENABLE_MOLD OFF)
53+
if (ENABLE_MOLD)
54+
set(CMAKE_LINKER mold)
55+
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=mold ${CMAKE_EXE_LINKER_FLAGS}")
56+
set(CMAKE_SHARED_LINKER_FLAGS "-fuse-ld=mold ${CMAKE_SHARED_LINKER_FLAGS}")
57+
endif()
58+
5259
MACRO(SUBDIRLIST result curdir)
5360
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
5461
SET(dirlist "")

Diff for: cmake/opencv.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ ExternalProject_Add(ppc_opencv
1010
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -G${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -D CMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
1111
-D CMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} -DCMAKE_CXX_FLAGS="-w" -DCMAKE_C_FLAGS="-w" -DENABLE_CCACHE=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF
1212
-DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DBUILD_opencv_calib3d=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_ml=OFF -DBUILD_opencv_objdetect=OFF
13-
-DBUILD_opencv_video=OFF -DBUILD_opencv_world=OFF -DBUILD_opencv_features2d=OFF -DBUILD_opencv_flann=OFF -DBUILD_opencv_photo=OFF
13+
-DBUILD_opencv_java=OFF -DBUILD_opencv_gapi=OFF -DBUILD_opencv_video=OFF -DBUILD_opencv_world=OFF -DBUILD_opencv_features2d=OFF -DBUILD_opencv_flann=OFF -DBUILD_opencv_photo=OFF
1414
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_opencv/build" --config ${CMAKE_BUILD_TYPE} --parallel
1515
INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_opencv/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_opencv/install")

Diff for: tasks/CMakeLists.txt

+1-2
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,7 @@ foreach(TASK_TYPE ${LIST_OF_TASKS})
141141
target_include_directories(${EXEC_FUNC} PUBLIC "${CMAKE_BINARY_DIR}/ppc_opencv/install/include/opencv4")
142142
target_link_directories(${EXEC_FUNC} PUBLIC "${CMAKE_BINARY_DIR}/ppc_opencv/install/lib")
143143
if(NOT MSVC)
144-
target_link_libraries(${EXEC_FUNC} PUBLIC
145-
opencv_core opencv_highgui opencv_imgcodecs opencv_imgproc opencv_videoio)
144+
target_link_libraries(${EXEC_FUNC} PUBLIC opencv_core opencv_highgui opencv_imgcodecs opencv_imgproc opencv_videoio)
146145
endif()
147146

148147
add_dependencies(${EXEC_FUNC} ppc_googletest)

0 commit comments

Comments
 (0)