
I'm trying to package up a boost_1_33 RPM. The current default build produces single/multi thread variants of all libs. The current Redhat/Fedora rpm doesn't follow this. I'm tempted to just build single/multi thread variants of all libs just like the default build, but my question is, for which libs does multi-threading actually matter? Is there a subset of boost libs that actually change behavior with this switch? I'd like to get a minimal set.

Neal Becker wrote:
I'm trying to package up a boost_1_33 RPM.
That's great ! Some offtopic remark: Are you adding suitable pkg-config (*.pc) files to the packages ? That would be tremendously helpful (in particular if debian packagers would then do the same) ! Thanks, Stefan

Stefan Seefeld wrote:
Neal Becker wrote:
I'm trying to package up a boost_1_33 RPM.
That's great ! Some offtopic remark: Are you adding suitable pkg-config (*.pc) files to the packages ? That would be tremendously helpful (in particular if debian packagers would then do the same) !
No. I don't know anything about this subject. Any hints?

Neal Becker wrote:
Stefan Seefeld wrote:
Neal Becker wrote:
I'm trying to package up a boost_1_33 RPM.
That's great ! Some offtopic remark: Are you adding suitable pkg-config (*.pc) files to the packages ? That would be tremendously helpful (in particular if debian packagers would then do the same) !
No. I don't know anything about this subject. Any hints?
Those files would let you say: c++ `pkg-config boost_thread` foo.cc and have the pkg-config script print the compiler flags you need to compile and link with Boost.Thread. There's been a bit of discussion on this list earlier this year (and before that too) but noone's done the work yet. jon -- "the chances of finding out what really is going on are so absurdly remote that the only thing to do is to say hang the sense of it and just keep yourself occupied" - Slartibartfast, "Hitchhiker's Guide to the Galaxy"

Neal Becker wrote:
Stefan Seefeld wrote:
Neal Becker wrote:
I'm trying to package up a boost_1_33 RPM.
That's great ! Some offtopic remark: Are you adding suitable pkg-config (*.pc) files to the packages ? That would be tremendously helpful (in particular if debian packagers would then do the same) !
No. I don't know anything about this subject. Any hints?
http://pkgconfig.freedesktop.org/wiki The tool is available on most contemporary POSIX-like systems. I believe Vladimir plans to add support for it into boost.build v2. May be he has some suggestions ? Using pkg-config would make it very easy to configure third-party software that is to be built with boost. The scripts in question are small text files defining variables such as installation paths and compilation flags to be used when compiling with that package. Thanks, Stefan

Hi, does anyone know how to build the giallo (http:://giallo.sf.net).

ghq7613 wrote:
Hi, does anyone know how to build the giallo (http:://giallo.sf.net).
Hi ghq7613, as of earlier this week, the giallo snapshot in CVS is a little inconsistent. I have notified Hugo of this, and I think he's going to clean up the state. At the moment it won't build on unix, but it may build on windows - you need to copy the files into a boost build tree, then do a bjam install from the $BOOST_ROOT/libs/net directory. This may not build everything, but it should get you started. HTH, Matt

Hi Matt, Thanks your answer.Yes, i can build successfully in windows,and it does not copy files,it just should set BOOST_ROOT and GIALLO_ROOT var. But,in windows,i cant compile examples like echo.cpp in vs.net2003 ide:(
Hi ghq7613, as of earlier this week, the giallo snapshot in CVS is a little inconsistent. I have notified Hugo of this, and I think he's going to clean up the state.
At the moment it won't build on unix, but it may build on windows - you need to copy the files into a boost build tree, then do a bjam install from the $BOOST_ROOT/libs/net directory.
This may not build everything, but it should get you started.
HTH, Matt _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

hi hugoduncan:* *I using g++ 3.3 build the giallo,but i get some error while compiling select.cpp.The detail inform in attach. please give me some advices,thanks. --Guo Huiqiang ...found 965 targets... ...updating 6 targets... gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/debug/select.o In file included from /home/agile/work/boost_1_33_0/boost/thread/detail/config.hpp:18, from /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:15, from /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:23, from /home/agile/work/giallo/libs/net/src/demultiplexer/select.cpp:29: /home/agile/work/boost_1_33_0/boost/config/requires_threads.hpp:47:5: #error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" In file included from /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:23, from /home/agile/work/giallo/libs/net/src/demultiplexer/select.cpp:29: /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: (use `=' to initialize static data members) /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: declaration of `int boost::mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:56: error: conflicts with previous declaration `void boost::mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: declaration of `int boost::mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:57: error: conflicts with previous declaration `void boost::mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: declaration of `int boost::try_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:97: error: conflicts with previous declaration `void boost::try_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: declaration of `int boost::try_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:99: error: conflicts with previous declaration `void boost::try_mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: declaration of `int boost::timed_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:140: error: conflicts with previous declaration `void boost::timed_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: declaration of `int boost::timed_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:143: error: conflicts with previous declaration `void boost::timed_mutex::do_unlock()' In file included from /home/agile/work/giallo/libs/net/src/demultiplexer/select.cpp:29: /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp: In instantiation of `boost::detail::thread::lock_ops<boost::mutex>': /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:81: instantiated from `void boost::detail::thread::scoped_lock<Mutex>::lock() [with Mutex = boost::mutex]' /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:71: instantiated from `boost::detail::thread::scoped_lock<Mutex>::scoped_lock(Mutex&, bool) [with Mutex = boost::mutex]' /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:242: instantiated from here /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:34: error: no type named `cv_state' in `class boost::mutex' /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:53: error: no type named `cv_state' in `class boost::mutex' /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:57: error: no type named `cv_state' in `class boost::mutex' set -e "g++" -c -Wall -ftemplate-depth-255 -g -O0 -fno-inline -I"bin/giallo/libs/net/build" -I"/home/agile/work/boost_1_33_0" -I"/home/agile/work/giallo" -o "bin/giallo/libs/net/build/libboost_net.a/gcc/debug/select.o" "/home/agile/work/giallo/libs/net/build/../src/demultiplexer/select.cpp" "/usr/bin/objcopy" --set-section-flags .debug_str=contents,debug "bin/giallo/libs/net/build/libboost_net.a/gcc/debug/select.o" ...failed gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/debug/select.o... gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/debug/trace.o In file included from /home/agile/work/boost_1_33_0/boost/thread/detail/config.hpp:18, from /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:15, from /home/agile/work/giallo/boost/net/detail/trace.hpp:14, from /home/agile/work/giallo/libs/net/src/trace.cpp:16: /home/agile/work/boost_1_33_0/boost/config/requires_threads.hpp:47:5: #error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" In file included from /home/agile/work/giallo/boost/net/detail/trace.hpp:14, from /home/agile/work/giallo/libs/net/src/trace.cpp:16: /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: (use `=' to initialize static data members) /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: declaration of `int boost::mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:56: error: conflicts with previous declaration `void boost::mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: declaration of `int boost::mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:57: error: conflicts with previous declaration `void boost::mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: declaration of `int boost::try_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:97: error: conflicts with previous declaration `void boost::try_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: declaration of `int boost::try_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:99: error: conflicts with previous declaration `void boost::try_mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: declaration of `int boost::timed_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:140: error: conflicts with previous declaration `void boost::timed_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: declaration of `int boost::timed_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:143: error: conflicts with previous declaration `void boost::timed_mutex::do_unlock()' set -e "g++" -c -Wall -ftemplate-depth-255 -g -O0 -fno-inline -I"bin/giallo/libs/net/build" -I"/home/agile/work/boost_1_33_0" -I"/home/agile/work/giallo" -o "bin/giallo/libs/net/build/libboost_net.a/gcc/debug/trace.o" "/home/agile/work/giallo/libs/net/build/../src/trace.cpp" "/usr/bin/objcopy" --set-section-flags .debug_str=contents,debug "bin/giallo/libs/net/build/libboost_net.a/gcc/debug/trace.o" ...failed gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/debug/trace.o... ...skipped <@giallo!libs!net!build/libboost_net.a/gcc/debug>libboost_net-gcc-d-1_33.a for lack of <@giallo!libs!net!build/libboost_net.a/gcc/debug>libboost_net-gcc-d-1_33.a(select.o)... gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/release/select.o In file included from /home/agile/work/boost_1_33_0/boost/thread/detail/config.hpp:18, from /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:15, from /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:23, from /home/agile/work/giallo/libs/net/src/demultiplexer/select.cpp:29: /home/agile/work/boost_1_33_0/boost/config/requires_threads.hpp:47:5: #error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" In file included from /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:23, from /home/agile/work/giallo/libs/net/src/demultiplexer/select.cpp:29: /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: (use `=' to initialize static data members) /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: declaration of `int boost::mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:56: error: conflicts with previous declaration `void boost::mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: declaration of `int boost::mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:57: error: conflicts with previous declaration `void boost::mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: declaration of `int boost::try_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:97: error: conflicts with previous declaration `void boost::try_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: declaration of `int boost::try_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:99: error: conflicts with previous declaration `void boost::try_mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: declaration of `int boost::timed_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:140: error: conflicts with previous declaration `void boost::timed_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: declaration of `int boost::timed_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:143: error: conflicts with previous declaration `void boost::timed_mutex::do_unlock()' In file included from /home/agile/work/giallo/libs/net/src/demultiplexer/select.cpp:29: /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp: In instantiation of `boost::detail::thread::lock_ops<boost::mutex>': /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:81: instantiated from `void boost::detail::thread::scoped_lock<Mutex>::lock() [with Mutex = boost::mutex]' /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:71: instantiated from `boost::detail::thread::scoped_lock<Mutex>::scoped_lock(Mutex&, bool) [with Mutex = boost::mutex]' /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:242: instantiated from here /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:34: error: no type named `cv_state' in `class boost::mutex' /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:53: error: no type named `cv_state' in `class boost::mutex' /home/agile/work/boost_1_33_0/boost/thread/detail/lock.hpp:57: error: no type named `cv_state' in `class boost::mutex' /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp: In member function `void boost::net::demux::impl::select_state::clear_notifier()': /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:488: warning: unused variable `int n' /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp: In member function `void boost::net::demux::impl::select_state::do_notify()': /home/agile/work/giallo/libs/net/src/demultiplexer/unix/select.cpp:496: warning: unused variable `int n' set -e "g++" -c -Wall -ftemplate-depth-255 -DNDEBUG -DNDEBUG -O3 -finline-functions -Wno-inline -I"bin/giallo/libs/net/build" -I"/home/agile/work/boost_1_33_0" -I"/home/agile/work/giallo" -o "bin/giallo/libs/net/build/libboost_net.a/gcc/release/select.o" "/home/agile/work/giallo/libs/net/build/../src/demultiplexer/select.cpp" ...failed gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/release/select.o... gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/release/trace.o In file included from /home/agile/work/boost_1_33_0/boost/thread/detail/config.hpp:18, from /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:15, from /home/agile/work/giallo/boost/net/detail/trace.hpp:14, from /home/agile/work/giallo/libs/net/src/trace.cpp:16: /home/agile/work/boost_1_33_0/boost/config/requires_threads.hpp:47:5: #error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" In file included from /home/agile/work/giallo/boost/net/detail/trace.hpp:14, from /home/agile/work/giallo/libs/net/src/trace.cpp:16: /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: (use `=' to initialize static data members) /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:58: error: declaration of `int boost::mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:56: error: conflicts with previous declaration `void boost::mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:59: error: declaration of `int boost::mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:57: error: conflicts with previous declaration `void boost::mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:100: error: declaration of `int boost::try_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:97: error: conflicts with previous declaration `void boost::try_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:101: error: declaration of `int boost::try_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:99: error: conflicts with previous declaration `void boost::try_mutex::do_unlock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: variable or field `do_lock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:144: error: declaration of `int boost::timed_mutex::do_lock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:140: error: conflicts with previous declaration `void boost::timed_mutex::do_lock()' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `cv_state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: `state' was not declared in this scope /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: invalid data member initialization /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: variable or field `do_unlock' declared void /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:145: error: declaration of `int boost::timed_mutex::do_unlock' /home/agile/work/boost_1_33_0/boost/thread/mutex.hpp:143: error: conflicts with previous declaration `void boost::timed_mutex::do_unlock()' set -e "g++" -c -Wall -ftemplate-depth-255 -DNDEBUG -DNDEBUG -O3 -finline-functions -Wno-inline -I"bin/giallo/libs/net/build" -I"/home/agile/work/boost_1_33_0" -I"/home/agile/work/giallo" -o "bin/giallo/libs/net/build/libboost_net.a/gcc/release/trace.o" "/home/agile/work/giallo/libs/net/build/../src/trace.cpp" ...failed gcc-C++-action bin/giallo/libs/net/build/libboost_net.a/gcc/release/trace.o... ...skipped <@giallo!libs!net!build/libboost_net.a/gcc/release>libboost_net-gcc-1_33.a for lack of <@giallo!libs!net!build/libboost_net.a/gcc/release>libboost_net-gcc-1_33.a(select.o)... ...failed updating 4 targets... ...skipped 2 targets...

hello HuiQiang, I have been trying to get the dll/so build updated, and this crept into cvs. Everything should work again now. As an aside, I am not regularly reading the boost list at the moment (I was forwarded your message), so you will be more assured of a reply if you email me directly or through the giallo list, as you have done before. Hugo

I'm trying to package up a boost_1_33 RPM. The current default build produces single/multi thread variants of all libs. The current Redhat/Fedora rpm doesn't follow this.
I'm tempted to just build single/multi thread variants of all libs just like the default build, but my question is, for which libs does multi-threading actually matter? Is there a subset of boost libs that actually change behavior with this switch? I'd like to get a minimal set.
It makes a difference for regex certainly, John.

I'm tempted to just build single/multi thread variants of all libs just like the default build, but my question is, for which libs does multi-threading actually matter? Is there a subset of boost libs that actually change behavior with this switch? I'd like to get a minimal set.
Looks like regex and serialisation depend on BOOST_HAS_THREADS, but shared_ptr does as well, which means date_time, filesystem, iostreams, program_options, python, spirit, test, and wave as well. John.

John Maddock wrote:
Looks like regex and serialisation depend on BOOST_HAS_THREADS, but shared_ptr does as well, which means date_time, filesystem, iostreams, program_options, python, spirit, test, and wave as well.
If serialization depends upon BOOST_HAS_THREADS its totally unintentional on my part. I don't know where such a dependency would come from unless its shared_ptr which I only recently started to depend upon. I would like to see more information on this topic. Robert Ramey

If serialization depends upon BOOST_HAS_THREADS its totally unintentional on my part. I don't know where such a dependency would come from unless its shared_ptr which I only recently started to depend upon. I would like to see more information on this topic.
I just did a quick search for BOOST_HAS_THREADS: shared_count_132.hpp changes the ABI of sp_counted_base depending on whether it's defined or not. Whether that's an issue in practice I can't say, it depends on how that class is used. As for shared_ptr, it would indeed be useful to have more information, for example can I link a multithreaded lib that contains an API returning shared_ptr<foo> to a single threaded app? Looking at the source, it appears that for most platforms the answer is "yes": as long as shared_ptr recognises the platform and can use atomic increment/decrement operations, then those operations will always be used (and the internal ABI's remain unchanged as well). However it looks like there may be some platforms that rely on BOOST_HAS_THREADS / BOOST_HAS_PTHREADS, and I'm guessing that their ABI's will change. I'm not sure that this is the definitive answer though... John.

On Thu, 11 Aug 2005 17:22:23 +0100, John Maddock wrote
I'm tempted to just build single/multi thread variants of all libs just like the default build, but my question is, for which libs does multi-threading actually matter? Is there a subset of boost libs that actually change behavior with this switch? I'd like to get a minimal set.
Looks like regex and serialisation depend on BOOST_HAS_THREADS, but shared_ptr does as well, which means date_time, filesystem, iostreams, program_options, python, spirit, test, and wave as well.
Just to add a small complication, the only direct use of BOOST_HAS_THREADS in date-time is to call re-entrant versions of clock functions if they exist on the platform. There is new code in 1.33 that uses shared_ptr so obviously that will impact things. However, all the code that depends on BOOST_HAS_THREADS is inline so there is no difference in the built library. Not sure how that should be handled. Jeff Note: By dumping old compiler support I may eliminate the need for a compiled library in a future release. In 1.33 the only capabilities that actually require the built library are the to_string() and serialization code (which uses to_string()). If you stick to operator<< and operator>> you don't need the built library even in 1.33.
participants (9)
-
ghq7613
-
Hugo Duncan
-
Jeff Garland
-
John Maddock
-
Jonathan Wakely
-
Matthew Vogt
-
Neal Becker
-
Robert Ramey
-
Stefan Seefeld