thread lib using workshop CC on solaris

Hi, All I am working on porting an application from MSVC to solaris workshop(the applicatoin is using boost thread lib). I could not locate the makefile or jam file for this compiler. Is there anybody did the same thing before? If you finially made it, can you share your experience, makefile with me? Actually I tried to write a makefile myself, but it reported a lot of errors related to template parameters :(. Thanks very much! Qiu

Compile all the boost thread files (listed below) into your application using the compiler switches shown. Use these switches for ALL files (not just the boost thread files) that you compile into your application. This works for me, but I'm only using boost 28. I've found it to be very stable though. CC $(CFLAGS) -mt -c -I$(INCLUDE_PATH) thread.cpp condition.cpp exceptions.cpp mutex.cpp recursive_mutex.cpp tss.cpp xtime.cpp --- In Boost-Users@yahoogroups.com, "jenny_qzhang" <jenny_qzhang@y...> wrote:
Hi, All
I am working on porting an application from MSVC to solaris workshop(the applicatoin is using boost thread lib). I could not locate the makefile or jam file for this compiler. Is there anybody did the same thing before?
If you finially made it, can you share your experience, makefile with me? Actually I tried to write a makefile myself, but it reported a lot of errors related to template parameters :(.
Thanks very much!
Qiu

To get around the template problems, I had to write my own mini- version of boost::function and change boost::thread to use that instead! Update thread.hpp and thread.cpp to accept a const ref to function class below... #define SunWS when compiling! Also make sure you all the latest patches for the Sun compiler. ///////////////////////////////////////////////////////////////////// / // function.hpp // // This file includes a workaround for the Sun WorkShop compiler which // core dumps when trying to compile boost::function<> ///////////////////////////////////////////////////////////////////// / #if !defined(WU_FUNCTION_H_) #define WU_FUNCTION_H_ #if !defined(SunWS) #include <boost/function.hpp> namespace WUC2 { typedef boost::function0<void> Callback; } // namespace WUC2 ///////////////////////////////////////////////////////////////////// / #else #include <memory> namespace WUC2 { #if !defined(WU_FUNCTION_HOLDER_BASE_H_) #define WU_FUNCTION_HOLDER_BASE_H_ class function_holder_base // detail { public: virtual ~function_holder_base() {} virtual void operator()() = 0; virtual function_holder_base* copy() const = 0; }; #endif // !defined(WU_FUNCTION_HOLDER_BASE_H_) template<typename F> class function_holder : public function_holder_base // detail { public: function_holder(const F& f) : m_f(f) {} ~function_holder() {} void operator()() { m_f(); } function_holder_base* copy() const { return new function_holder(*this); } private: F m_f; }; class function { public: template<typename F> function(const F& fb) : m_fb (new function_holder<F>(fb)) {} function(const function& r) : m_fb( (r.m_fb)->copy () ) {} function() : m_fb(0) {} function& operator=(const function& r) { std::auto_ptr<function_holder_base> fb( (r.m_fb)->copy() ); if(fb.get()) { delete m_fb; m_fb = fb.release(); } return *this; } ~function() { delete m_fb; } void operator()() { m_fb->operator()(); } operator bool() const { return m_fb != 0; } void clear() { delete m_fb; m_fb = 0; } private: function_holder_base* m_fb; }; typedef function Callback; } // namespace WUC2 ///////////////////////////////////////////////////////////////////// / #endif // elif !defined(SunWS) ///////////////////////////////////////////////////////////////////// / #endif // !defined(WU_FUNCTION_H_) --- In Boost-Users@yahoogroups.com, "jenny_qzhang" <jenny_qzhang@y...> wrote:
Hi, All
I am working on porting an application from MSVC to solaris workshop(the applicatoin is using boost thread lib). I could not locate the makefile or jam file for this compiler. Is there anybody did the same thing before?
If you finially made it, can you share your experience, makefile with me? Actually I tried to write a makefile myself, but it reported a lot of errors related to template parameters :(.
Thanks very much!
Qiu
participants (2)
-
jenny_qzhang
-
Simon Bailey