udoprog / c10t

A minecraft cartography tool
Other
225 stars 50 forks source link

Link fails on linux mint #237

Closed stenyak closed 10 years ago

stenyak commented 12 years ago

Linux x86 32bit, fresh clone fails to build. If more info is needed, please let me know.

$ make
[ 15%] Built target c10t-image
[ 17%] Built target unc
[ 42%] Built target c10t-mc
[ 45%] Built target c10t-nbt
[ 67%] Built target c10t-engine
[ 72%] Built target uncdata
Linking CXX executable c10t
`.text._ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED2Ev' referenced in section `.text._ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED1Ev[boost::exception_detail::error_info_injector<boost::lock_error>::~error_info_injector()]' of /usr/lib/libboost_thread-mt.a(thread.o): defined in discarded section `.text._ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED2Ev[_ZN5boost16exception_detail19error_info_injectorINS_10lock_errorEED5Ev]' of /usr/lib/libboost_thread-mt.a(thread.o)
`.text._ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED2Ev' referenced in section `.text._ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED1Ev[boost::exception_detail::error_info_injector<boost::thread_resource_error>::~error_info_injector()]' of /usr/lib/libboost_thread-mt.a(thread.o): defined in discarded section `.text._ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED2Ev[_ZN5boost16exception_detail19error_info_injectorINS_21thread_resource_errorEED5Ev]' of /usr/lib/libboost_thread-mt.a(thread.o)
`.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev' referenced in section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED1Ev[boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >::~clone_impl()]' of /usr/lib/libboost_thread-mt.a(thread.o): defined in discarded section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED5Ev]' of /usr/lib/libboost_thread-mt.a(thread.o)
`.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev' referenced in section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED1Ev[boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >::~clone_impl()]' of /usr/lib/libboost_thread-mt.a(thread.o): defined in discarded section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_21thread_resource_errorEEEED5Ev]' of /usr/lib/libboost_thread-mt.a(thread.o)
`.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev' referenced in section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED1Ev[boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >::~clone_impl()]' of /usr/lib/libboost_thread-mt.a(thread.o): defined in discarded section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED5Ev]' of /usr/lib/libboost_thread-mt.a(thread.o)
`.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev' referenced in section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED1Ev[boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >::~clone_impl()]' of /usr/lib/libboost_thread-mt.a(thread.o): defined in discarded section `.text._ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED2Ev[_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_10lock_errorEEEED5Ev]' of /usr/lib/libboost_thread-mt.a(thread.o)
collect2: ld returned 1 exit status
make[2]: *** [c10t] Error 1
make[1]: *** [CMakeFiles/c10t.dir/all] Error 2
make: *** [all] Error 2
uap-universe commented 12 years ago

Which version of libboost are you using? It should be at least 1.46. Unfortunately on many linux distribution the default libboost version the package manager supplies is 1.33.

stenyak commented 12 years ago

These are the versions:

$ apt search boost |grep "^i" i libboost-all-dev - Boost C++ Libraries development files (ALL i A libboost-date-time-dev - date-time libraries based on generic progr i A libboost-date-time1.46-dev - set of date-time libraries based on generi i A libboost-date-time1.46.1 - set of date-time libraries based on generi i A libboost-dev - Boost C++ Libraries development files (def i A libboost-filesystem-dev - filesystem operations in C++ (default vers i A libboost-filesystem1.46-dev - filesystem operations (portable paths, ite i A libboost-filesystem1.46.1 - filesystem operations (portable paths, ite i A libboost-graph-dev - generic graph components and algorithms in i A libboost-graph-parallel-dev - generic graph components and algorithms in i A libboost-graph-parallel1.46-dev - generic graph components and algorithms in i A libboost-graph-parallel1.46.1 - generic graph components and algorithms in i A libboost-graph1.46-dev - generic graph components and algorithms in i A libboost-graph1.46.1 - generic graph components and algorithms in i A libboost-iostreams-dev - Boost.Iostreams Library development files i libboost-iostreams1.42.0 - Boost.Iostreams Library
i A libboost-iostreams1.46-dev - Boost.Iostreams Library development files i A libboost-iostreams1.46.1 - Boost.Iostreams Library
i A libboost-math-dev - Boost.Math Library development files (defa i A libboost-math1.46-dev - Boost.Math Library development files
i A libboost-math1.46.1 - Boost.Math Library
i A libboost-mpi-dev - C++ interface to the Message Passing Inter i A libboost-mpi-python-dev - Python interface to the Message Passing In i A libboost-mpi1.46-dev - C++ interface to the Message Passing Inter i A libboost-mpi1.46.1 - C++ interface to the Message Passing Inter i A libboost-program-options-dev - program options library for C++ (default v i A libboost-program-options1.46-de - program options library for C++
i A libboost-program-options1.46.1 - program options library for C++
i A libboost-python-dev - Boost.Python Library development files (de i A libboost-python1.46-dev - Boost.Python Library development files
i A libboost-python1.46.1 - Boost.Python Library
i A libboost-regex-dev - regular expression library for C++ (defaul i A libboost-regex1.46-dev - regular expression library for C++
i A libboost-regex1.46.1 - regular expression library for C++
i A libboost-serialization-dev - serialization library for C++ (default ver i A libboost-serialization1.46-dev - serialization library for C++
i A libboost-serialization1.46.1 - serialization library for C++
i A libboost-signals-dev - managed signals and slots library for C++ i A libboost-signals1.46-dev - managed signals and slots library for C++ i A libboost-signals1.46.1 - managed signals and slots library for C++ i A libboost-system-dev - Operating system (e.g. diagnostics support i A libboost-system1.46-dev - Operating system (e.g. diagnostics support i A libboost-system1.46.1 - Operating system (e.g. diagnostics support i A libboost-test-dev - components for writing and executing test i A libboost-test1.46-dev - components for writing and executing test i A libboost-test1.46.1 - components for writing and executing test i A libboost-thread-dev - portable C++ multi-threading (default vers i A libboost-thread1.46-dev - portable C++ multi-threading
i A libboost-thread1.46.1 - portable C++ multi-threading
i A libboost-wave-dev - C99/C++ preprocessor library (default vers i A libboost-wave1.46-dev - C99/C++ preprocessor library
i A libboost-wave1.46.1 - C99/C++ preprocessor library
i libboost1.46-dev - Boost C++ Libraries development files

uap-universe commented 12 years ago

Ok. This version should work.... You could try the following:

  1. Go to your c10t root directory and look for file CMakeLists.txt.
  2. Find the line that reads "set(Boost_USE_STATIC_LIBS TRUE)"
  3. Set TRUE to FALSE
  4. Go to your build directory and remove the CMakeCache.txt
  5. run cmake and make again

If this works, this is just a workaround. I have no idea why static linking should not work. Could you please print the cmake output here, too (in addition to the make output)?

stenyak commented 12 years ago

Changing to FALSE worked perfectly (aside from a few warnings:

[ 75%] Building CXX object CMakeFiles/c10t.dir/src/main.cpp.o
In file included from /home/stenyak/dev/c10t/src/threads/renderer.hpp:14:0,
                 from /home/stenyak/dev/c10t/src/main.cpp:30:
/home/stenyak/dev/c10t/src/cache.hpp: In member function ‘bool cache_file::exists()’:
/home/stenyak/dev/c10t/src/cache.hpp:46:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/stenyak/dev/c10t/src/cache.hpp: In member function ‘bool cache_file::read(boost::shared_ptr<image_operations>)’:
/home/stenyak/dev/c10t/src/cache.hpp:144:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/stenyak/dev/c10t/src/main.cpp: In function ‘bool generate_map(std::ostream&, std::ostream&, settings_t&, boost::filesystem3::path&, boost::filesystem3::path&)’:
/home/stenyak/dev/c10t/src/main.cpp:606:48: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object [enabled by default]

When changing back to the original TRUE and running cmake, I get this in the CMakeError.log:

$ cat CMakeFiles/CMakeError.log 
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o
/usr/bin/gcc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c
Linking C executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/gcc     -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o  -o cmTryCompileExec -rdynamic -lpthreads 
/usr/bin/ld: cannot find -lpthreads
collect2: ld returned 1 exit status
make[1]: *** [cmTryCompileExec] Error 1
make[1]: Leaving directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec/fast] Error 2

And this in CMakeOutput.log:

The system is: Linux - 2.6.32-5-686 - i686
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/gcc 
Build flags: 
Id flags: 

The output was:
0

Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"

The C compiler identification is GNU, found in "/home/stenyak/dev/c10t/build/CMakeFiles/CompilerIdC/a.out"

Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++ 
Build flags: 
Id flags: 

The output was:
0

Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"

The CXX compiler identification is GNU, found in "/home/stenyak/dev/c10t/build/CMakeFiles/CompilerIdCXX/a.out"

Determining if the C compiler works passed with the following output:
Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o
/usr/bin/gcc    -o CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o   -c /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/gcc         CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o  -o cmTryCompileExec -rdynamic 
make[1]: Leaving directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'

Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o
/usr/bin/gcc    -o CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c
Linking C executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/gcc       -v CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec -rdynamic  
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-4' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib/i386-linux-gnu --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.6.1 (Debian 4.6.1-4) 
COMPILER_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/
LIBRARY_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../:/lib/:/usr/lib/:/usr/lib/i386-linux-gnu/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec' '-rdynamic' '-mtune=generic' '-march=i586'
 /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/collect2 --build-id --no-add-needed --eh-frame-hdr -m elf_i386 --hash-style=both -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o cmTryCompileExec /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crt1.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crti.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtbegin.o -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1 -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../.. -L/usr/lib/i386-linux-gnu CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtend.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crtn.o
make[1]: Leaving directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'

Parsed C implicit link information from above output:
  link line regex: [^( *|.*[/\])(ld|ld|collect2)[^/\]*( |$)]
  ignore line: [Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp]
  ignore line: []
  ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec/fast"]
  ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build]
  ignore line: [make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp']
  ignore line: [/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1]
  ignore line: [Building C object CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o]
  ignore line: [/usr/bin/gcc    -o CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c]
  ignore line: [Linking C executable cmTryCompileExec]
  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1]
  ignore line: [/usr/bin/gcc       -v CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o  -o cmTryCompileExec -rdynamic  ]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/usr/bin/gcc]
  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/lto-wrapper]
  ignore line: [Target: i486-linux-gnu]
  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-4' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib/i386-linux-gnu --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu]
  ignore line: [Thread model: posix]
  ignore line: [gcc version 4.6.1 (Debian 4.6.1-4) ]
  ignore line: [COMPILER_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/]
  ignore line: [LIBRARY_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../:/lib/:/usr/lib/:/usr/lib/i386-linux-gnu/]
  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec' '-rdynamic' '-mtune=generic' '-march=i586']
  link line: [ /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/collect2 --build-id --no-add-needed --eh-frame-hdr -m elf_i386 --hash-style=both -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o cmTryCompileExec /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crt1.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crti.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtbegin.o -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1 -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../.. -L/usr/lib/i386-linux-gnu CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtend.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crtn.o]
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/collect2] ==> ignore
    arg [--build-id] ==> ignore
    arg [--no-add-needed] ==> ignore
    arg [--eh-frame-hdr] ==> ignore
    arg [-m] ==> ignore
    arg [elf_i386] ==> ignore
    arg [--hash-style=both] ==> ignore
    arg [-export-dynamic] ==> ignore
    arg [-dynamic-linker] ==> ignore
    arg [/lib/ld-linux.so.2] ==> ignore
    arg [-o] ==> ignore
    arg [cmTryCompileExec] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crt1.o] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crti.o] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtbegin.o] ==> ignore
    arg [-L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1] ==> dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1]
    arg [-L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../..] ==> dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../..]
    arg [-L/usr/lib/i386-linux-gnu] ==> dir [/usr/lib/i386-linux-gnu]
    arg [CMakeFiles/cmTryCompileExec.dir/CMakeCCompilerABI.c.o] ==> ignore
    arg [-lgcc] ==> lib [gcc]
    arg [--as-needed] ==> ignore
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [--no-as-needed] ==> ignore
    arg [-lc] ==> lib [c]
    arg [-lgcc] ==> lib [gcc]
    arg [--as-needed] ==> ignore
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [--no-as-needed] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtend.o] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crtn.o] ==> ignore
  remove lib [gcc]
  remove lib [gcc_s]
  remove lib [gcc]
  remove lib [gcc_s]
  collapse dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1] ==> [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1]
  collapse dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../..] ==> [/usr/lib/i386-linux-gnu]
  collapse dir [/usr/lib/i386-linux-gnu] ==> [/usr/lib/i386-linux-gnu]
  implicit libs: [c]
  implicit dirs: [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1;/usr/lib/i386-linux-gnu]

Determining if the CXX compiler works passed with the following output:
Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o
/usr/bin/c++     -o CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o -c /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/c++          CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o  -o cmTryCompileExec -rdynamic 
make[1]: Leaving directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'

Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++     -o CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp
Linking CXX executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/c++        -v CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec -rdynamic  
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-4' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib/i386-linux-gnu --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.6.1 (Debian 4.6.1-4) 
COMPILER_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/
LIBRARY_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../:/lib/:/usr/lib/:/usr/lib/i386-linux-gnu/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=i586'
 /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/collect2 --build-id --no-add-needed --eh-frame-hdr -m elf_i386 --hash-style=both -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o cmTryCompileExec /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crt1.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crti.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtbegin.o -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1 -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../.. -L/usr/lib/i386-linux-gnu CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtend.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crtn.o
make[1]: Leaving directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'

Parsed CXX implicit link information from above output:
  link line regex: [^( *|.*[/\])(ld|ld|collect2)[^/\]*( |$)]
  ignore line: [Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp]
  ignore line: []
  ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec/fast"]
  ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build]
  ignore line: [make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp']
  ignore line: [/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1]
  ignore line: [Building CXX object CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o]
  ignore line: [/usr/bin/c++     -o CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp]
  ignore line: [Linking CXX executable cmTryCompileExec]
  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1]
  ignore line: [/usr/bin/c++        -v CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o  -o cmTryCompileExec -rdynamic  ]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/usr/bin/c++]
  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/lto-wrapper]
  ignore line: [Target: i486-linux-gnu]
  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-4' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib/i386-linux-gnu --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu]
  ignore line: [Thread model: posix]
  ignore line: [gcc version 4.6.1 (Debian 4.6.1-4) ]
  ignore line: [COMPILER_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/]
  ignore line: [LIBRARY_PATH=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/:/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../:/lib/:/usr/lib/:/usr/lib/i386-linux-gnu/]
  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=i586']
  link line: [ /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/collect2 --build-id --no-add-needed --eh-frame-hdr -m elf_i386 --hash-style=both -export-dynamic -dynamic-linker /lib/ld-linux.so.2 -o cmTryCompileExec /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crt1.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crti.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtbegin.o -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1 -L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../.. -L/usr/lib/i386-linux-gnu CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtend.o /usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crtn.o]
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/collect2] ==> ignore
    arg [--build-id] ==> ignore
    arg [--no-add-needed] ==> ignore
    arg [--eh-frame-hdr] ==> ignore
    arg [-m] ==> ignore
    arg [elf_i386] ==> ignore
    arg [--hash-style=both] ==> ignore
    arg [-export-dynamic] ==> ignore
    arg [-dynamic-linker] ==> ignore
    arg [/lib/ld-linux.so.2] ==> ignore
    arg [-o] ==> ignore
    arg [cmTryCompileExec] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crt1.o] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crti.o] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtbegin.o] ==> ignore
    arg [-L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1] ==> dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1]
    arg [-L/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../..] ==> dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../..]
    arg [-L/usr/lib/i386-linux-gnu] ==> dir [/usr/lib/i386-linux-gnu]
    arg [CMakeFiles/cmTryCompileExec.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
    arg [-lstdc++] ==> lib [stdc++]
    arg [-lm] ==> lib [m]
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [-lgcc] ==> lib [gcc]
    arg [-lc] ==> lib [c]
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [-lgcc] ==> lib [gcc]
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/crtend.o] ==> ignore
    arg [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../../crtn.o] ==> ignore
  remove lib [gcc_s]
  remove lib [gcc]
  remove lib [gcc_s]
  remove lib [gcc]
  collapse dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1] ==> [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1]
  collapse dir [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/../../..] ==> [/usr/lib/i386-linux-gnu]
  collapse dir [/usr/lib/i386-linux-gnu] ==> [/usr/lib/i386-linux-gnu]
  implicit libs: [stdc++;m;c]
  implicit dirs: [/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1;/usr/lib/i386-linux-gnu]

Determining if files pthread.h exist passed with the following output:
Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o
/usr/bin/gcc    -o CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o   -c /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CheckIncludeFiles.c
Linking C executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/gcc         CMakeFiles/cmTryCompileExec.dir/CheckIncludeFiles.c.o  -o cmTryCompileExec -rdynamic 
make[1]: Leaving directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'

Determining if the function pthread_create exists in the pthread passed with the following output:
Change Dir: /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build
make[1]: Entering directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o
/usr/bin/gcc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c
Linking C executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/gcc     -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o  -o cmTryCompileExec -rdynamic -lpthread 
make[1]: Leaving directory `/home/stenyak/dev/c10t/build/CMakeFiles/CMakeTmp'
uap-universe commented 12 years ago

Puhh. too much details :D Thanks for the detailed output, but the only thing I wanted to check is, if cmake says somthing like:

-- Looking for include files CMAKE_HAVE_PTHREAD_H - found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Boost version: 1.46.0 -- Found the following Boost libraries: -- thread -- filesystem -- system

I have not read the whole output yet, but the first lines let me guess that "create_thread" is not found at all. It should be found in either "pthreads" or "pthread".

Please also check with

ls -l /usr/lib | grep pthread

If the lib is present there.

Btw.: c10t builds with dynamic linking - but does it also work?

stenyak commented 12 years ago

There are boost-thread static and shared libs at /usr/lib: -rw-r--r-- 1 root root 93K Jan 4 09:04 libboost_thread.so.1.46.1 -rw-r--r-- 1 root root 158K Jan 4 09:04 libboost_thread.a lrwxrwxrwx 1 root root 25 Jan 4 09:04 libboost_thread.so -> libboost_thread.so.1.46.1 lrwxrwxrwx 1 root root 25 Jan 4 09:04 libboost_thread-mt.so -> libboost_thread.so.1.46.1 lrwxrwxrwx 1 root root 17 Jan 4 09:04 libboost_thread-mt.a -> libboost_thread.a

As for whether it works when compiled with dynamic linking, yes it does, I was able to generate a png map with it :-)

uap-universe commented 12 years ago

And what's about the pthread lib? Boost's thread lib depends on it. If everything works, I think they should be OK, but I wonder why static linking fails then.

stenyak commented 12 years ago

Sorry, there you go: $ ls -l /usr/lib |grep -i thread -rw-r--r-- 1 root root 24K Apr 14 2009 libIlmThread.so.6.0.0 lrwxrwxrwx 1 root root 26 Apr 14 2011 libgthread-2.0.so.0 -> libgthread-2.0.so.0.2800.6 -rw-r--r-- 1 root root 14K Apr 14 2011 libgthread-2.0.so.0.2800.6 -rw-r--r-- 1 root root 214K May 29 2011 libgpgme-pthread.so.11.7.0 lrwxrwxrwx 1 root root 26 May 29 2011 libgpgme-pthread.so.11 -> libgpgme-pthread.so.11.7.0 lrwxrwxrwx 1 root root 22 Jun 25 2011 libthreadutil.so.2 -> libthreadutil.so.2.2.3 -rw-r--r-- 1 root root 30K Jun 25 2011 libthreadutil.so.2.2.3 lrwxrwxrwx 1 root root 24 Jul 20 2011 libthreadweaver.so.4 -> libthreadweaver.so.4.6.0 -rw-r--r-- 1 root root 77K Jul 20 2011 libthreadweaver.so.4.6.0 lrwxrwxrwx 1 root root 21 Aug 30 00:36 libIlmThread.so.6 -> libIlmThread.so.6.0.0 lrwxrwxrwx 1 root root 26 Dec 1 12:15 libfftw3f_threads.so.3 -> libfftw3f_threads.so.3.3.0 lrwxrwxrwx 1 root root 25 Dec 1 12:19 libfftw3_threads.so.3 -> libfftw3_threads.so.3.3.0 lrwxrwxrwx 1 root root 26 Dec 1 12:23 libfftw3l_threads.so.3 -> libfftw3l_threads.so.3.3.0 -rw-r--r-- 1 root root 23K Dec 1 12:23 libfftw3_threads.so.3.3.0 -rw-r--r-- 1 root root 23K Dec 1 12:23 libfftw3l_threads.so.3.3.0 -rw-r--r-- 1 root root 23K Dec 1 12:23 libfftw3f_threads.so.3.3.0 -rw-r--r-- 1 root root 93K Jan 4 09:04 libboost_thread.so.1.46.1 -rw-r--r-- 1 root root 158K Jan 4 09:04 libboost_thread.a lrwxrwxrwx 1 root root 25 Jan 4 09:04 libboost_thread.so -> libboost_thread.so.1.46.1 lrwxrwxrwx 1 root root 25 Jan 4 09:04 libboost_thread-mt.so -> libboost_thread.so.1.46.1 lrwxrwxrwx 1 root root 17 Jan 4 09:04 libboost_thread-mt.a -> libboost_thread.a

uap-universe commented 12 years ago

Okay - there is no libpthread and that's why static linking fails (I think).