Package: cmake
Version: 2.8.0-5
Severity: minor

When using
   find_package(Boost COMPONENTS thread REQUIRED)
-lpthread is not added to the link command, causing the link to fail if
binutils-gold (which has --no-add-needed behavior as default) is used.

More informations can be found at
 
http://wiki.debian.org/qa.debian.org/FTBFS#A2009-11-02Packagesfailingbecausebinutils-gold.2BAC8-indirectlinking

See attached testcase.

Thanks,
Ludovico


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages cmake depends on:
ii  cmake-data              2.8.0-5          CMake data files (modules, templat
ii  libc6                   2.10.2-2         GNU C Library: Shared libraries
ii  libcurl3-gnutls         7.19.7-1         Multi-protocol file transfer libra
ii  libexpat1               2.0.1-7          XML parsing C library - runtime li
ii  libgcc1                 1:4.4.2-8        GCC support library
ii  libstdc++6              4.4.2-8          The GNU Standard C++ Library v3
ii  zlib1g                  1:1.2.3.4.dfsg-3 compression library - runtime

cmake recommends no packages.

cmake suggests no packages.

-- no debconf information
#include <boost/thread/recursive_mutex.hpp>

boost::recursive_mutex recursive_mutex;

int main() {
    boost::recursive_mutex::scoped_lock(recursive_mutex);
    return 0;
}
cmake_minimum_required(VERSION 2.6)
set(Boost_DEBUG ON)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost COMPONENTS thread REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(foo foo.cc)

# The following line should be enough as foo.cc is not using pthreads
target_link_libraries(foo ${Boost_LIBRARIES})

# The next line fixes the error
#target_link_libraries(foo ${Boost_LIBRARIES} -lpthread)

Reply via email to