The following issue has been SUBMITTED.
==
http://public.kitware.com/Bug/view.php?id=15699
==
Reported By:pavel.odintsov
Assigned To:
==
Project:CMake
Issue ID: 15699
Category: CMake
Reproducibility:always
Severity: minor
Priority: normal
Status: new
==
Date Submitted: 2015-08-16 07:07 EDT
Last Modified: 2015-08-16 07:07 EDT
==
Summary:Link project to custom libc version installed in
/opt without bothering system
Description:
Hello, folks!
I'm trying to build my application project which links to custom libc version
installed in /opt.
I have installed glibc 2.22 and gcc 5.2.2 in /opt.
And I have following cmake file:
cmake_minimum_required (VERSION 2.8)
project(MyProject)
# Run this code this way:
# cd build
# cmake -DCMAKE_C_COMPILER=/opt/gcc520/bin/gcc
-DCMAKE_CXX_COMPILER=/opt/gcc520/bin/g++ ..
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_C_COMPILER /opt/gcc520/bin/gcc)
set(CMAKE_CXX_COMPILER /opt/gcc520/bin/g++)
# Remove all standard path's
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES )
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES )
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES )
# Specify path's to custom compiled gcc and glibc
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES stdc++;gcc;gcc_s;m;c)
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES /opt/glibc_2.22/include)
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES
/opt/glibc_2.22/lib;/opt/gcc520/lib64;/opt/glibc_2.22/lib;/opt/gcc520/lib/gcc/x86_64-unknown-linux-gnu/5.2.0)
set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} -std=c++11)
# Specify custom ld-linux dynamic linker path
set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}
-Wl,--dynamic-linker=/opt/glibc_2.22/lib/ld-linux-x86-64.so.2)
# Specify full RPATH for build tree
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
# Create builds in current folder with install RPATH
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_INSTALL_RPATH /opt/gcc520/lib64;/opt/glibc_2.22/lib)
add_executable(suxx suxx.cpp)
So when I'm running this manifest it still uses system includes/libraries. But
It should not do it.
I could offer strace of make command here:
strace -s 1024 -f -etrace=execve make
execve(/usr/bin/make, [make], [/* 24 vars */]) = 0
Process 13613 attached
[pid 13613] execve(/usr/bin/cmake, [/usr/bin/cmake,
-H/root/cmake_custom_libc, -B/root/cmake_custom_libc/build,
--check-build-system, CMakeFiles/Makefile.cmake, 0], [/* 27 vars */]) = 0
[pid 13613] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=13613, si_uid=0,
si_status=0, si_utime=1, si_stime=0} ---
Process 13614 attached
[pid 13614] execve(/usr/bin/cmake, [/usr/bin/cmake, -E,
cmake_progress_start, /root/cmake_custom_libc/build/CMakeFiles,
/root/cmake_custom_libc/build/CMakeFiles/progress.marks], [/* 27 vars */]) = 0
[pid 13614] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=13614, si_uid=0,
si_status=0, si_utime=0, si_stime=0} ---
Process 13615 attached
[pid 13615] execve(/usr/local/sbin/make, [make, -f,
CMakeFiles/Makefile2, all], [/* 27 vars */]) = -1 ENOENT (No such file or
directory)
[pid 13615] execve(/usr/local/bin/make, [make, -f, CMakeFiles/Makefile2,
all], [/* 27 vars */]) = -1 ENOENT (No such file or directory)
[pid 13615] execve(/usr/sbin/make, [make, -f, CMakeFiles/Makefile2,
all], [/* 27 vars */]) = -1 ENOENT (No such file or directory)
[pid 13615] execve(/usr/bin/make, [make, -f, CMakeFiles/Makefile2,
all], [/* 27 vars */]) = 0
Process 13616 attached
[pid 13616] execve(/usr/local/sbin/make, [make, -f,
CMakeFiles/suxx.dir/build.make, CMakeFiles/suxx.dir/depend], [/* 27 vars
*/]) = -1 ENOENT (No such file or directory)
[pid 13616] execve(/usr/local/bin/make, [make, -f,
CMakeFiles/suxx.dir/build.make, CMakeFiles/suxx.dir/depend], [/* 27 vars
*/]) = -1 ENOENT (No such file or directory)
[pid 13616] execve(/usr/sbin/make, [make, -f,
CMakeFiles/suxx.dir/build.make, CMakeFiles/suxx.dir/depend], [/* 27 vars
*/]) = -1 ENOENT (No such file or directory)
[pid 13616] execve(/usr/bin/make, [make, -f,
CMakeFiles/suxx.dir/build.make, CMakeFiles/suxx.dir/depend], [/* 27 vars
*/]) = 0
Process 13617 attached
[pid 13617] execve(/bin/sh, [/bin/sh, -c, cd
/root/cmake_custom_libc/build /usr/bin/cmake -E cmake_depends \Unix
Makefiles\ /root/cmake_custom_libc /root/cmake_custom_libc
/root/cmake_custom_libc/build /root/cmake_custom_libc/build
/root/cmake_custom_libc/build/CMakeFiles/suxx.dir/DependInfo.cmake --color=],
[/* 27 vars */]) = 0
Process 13618 attached
[pid 13618]