Can someone point out why cmake is introducing -rdynamic in linker file? link.txt.
This is causing nvcc linker to file. I know cmake is causing it because if I dont use cmake (shell script), it does not exhibit this problem…
Cmake usage option:
CMakeLists.:
set (proj_name ${CMAKE_PROJ_NAME})
project (${proj_name})The version number.
#set (test_VERSION_MAJOR 1)
#set (test_VERSION_MINOR 0)set (CMAKE_CXX_FLAGS "
-L/usr/lib64
-L/usr/lib64/openmpi/lib/
-lmpi_cxx -lnccl -lmpi
-I/usr/include/openmpi-x86_64/
-I/usr/local/cuda-12.6/targets/x86_64-linux/include/ ")#set(CMAKE_CXX_LINK_FLAGS “${CMAKE_CXX_LINK_FLAGS} Xlinker --no-export-dynamic”)
#set(CMAKE_CUDA_FLAGS “${CMAKE_CUDA_FLAGS} -Xlinker --no-export-dynamic”)set(CMAKE_CXX_COMPILER nvcc)
include_directories(“${PROJECT_BINARY_DIR}”)
add_executable(${proj_name} ${proj_name}.cpp)
#target_link_options(${proj_name} PRIVATE “Xlinker --no-export-dynamic”)link.txt:
cat
find . -name link.txt
nvcc -L/usr/lib64 -L/usr/lib64/openmpi/lib/ -lmpi_cxx -lnccl -lmpi -I/usr/include/openmpi-x86_64/ -I/usr/local/cuda-12.6/targets/x86_64-linux/include/ -rdynamic “CMakeFiles/ex-1-create-comm.dir/ex-1-create-comm.o” -o ex-1-create-commShell script w/o using cmake (works):
set -x
FILENAME=ex-1-create-comm
EXT=cpp
COMPILER=/usr/lib64/openmpi/bin/mpicxx
COMPILER=nvcc
LOGDIR=log
mkdir -p $LOGDIR
rm -rf $FILENAME.out
$COMPILER
-L/usr/lib64 -L/usr/lib64/openmpi/lib/
-lmpi_cxx -lnccl -lmpi -I/usr/include/openmpi-x86_64/
$FILENAME.$EXT -o $FILENAME.out 2>&1 | tee $LOGDIR/$FILENAME.compile.logif [[ -f $FILENAME.out ]] ; then
LD_LIBRARY_PATH=/usr/lib64/openmpi/lib/ OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
mpirun -np 2 ./$FILENAME.out -allow-run-as-root 2>&1 | tee $LOGDIR/$FILENAME.run.log
fi
root@ccs-aus-j08-01:~/extdir/gg/git/codelab/gpu/cuda/nccl/grok#