DLL linking with Como

date-time has a number of regession test failures when it is built in the dll mode on windows. They look like this: C:\Progra~1\Comeau\4_3_3\bin\como --vc7 -c -e5 --no_version --no_prelink_verbose --display_error_number --long_long --diag_suppress=9,21,161,748,940,962 -D__STL_LONG_LONG -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_ALL_DYN_LINK=1 --a --no_inlining /Zi /Od -D_WIN32 --exceptions -DBOOST_DISABLE_WIN32 --wchar_t -I"C:\Users\Administrator\boost\main\results\bin\boost\libs\date_time\build" -I"C:\Users\Administrator\boost\main\boost" -I"C:\Progra~1\Comeau\4_3_3\libcomo" -I"C:\Progra~1\Comeau\4_3_3\libcomo\cnames" -o "C:\Users\Administrator\boost\main\results\bin\boost\libs\date_time\build\boost_date_time.dll\meta-como-win32-4.3.3-vc7\debug\greg_month.obj" "C:\Users\Administrator\boost\main\boost\libs\date_time\build\../src/gregorian/greg_month.cpp" "C:\Users\Administrator\boost\main\boost\boost/date_time/gregorian/greg_month.hpp", line 55: error #70: incomplete type is not allowed class BOOST_DATE_TIME_DECL greg_month : public greg_month_rep { ^ Which looks like it is complaining about the BOOST_DATE_TIME_DECL macro. I'm wondering if in config/platform/win32.hpp we need to at como to this little macro that controls the definition of BOOST_HAS_DECLSPEC. #if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC) # define BOOST_HAS_DECLSPEC #endif I've never used this compiler -- anyone out there know how it handles dll symbol export on win32? Jeff

On Fri, 16 Jul 2004 19:13:08 -0700, Jeff Garland wrote ...replies to self...
...snip detail some details...
date-time has a number of regession test failures when it is built in the dll mode on windows. They look like this:
Which looks like it is complaining about the BOOST_DATE_TIME_DECL macro. I'm wondering if in config/platform/win32.hpp we need to at como to this little macro that controls the definition of BOOST_HAS_DECLSPEC.
#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC) # define BOOST_HAS_DECLSPEC #endif
Since no one replied, I did some additional digging. It looks like we need to switch the --windows option on if we want Comeau to accept __declspec options. Same conclusion Vladimir Prus brought up a couple weeks back -- no one responded. http://lists.boost.org/MailArchives/boost/msg67100.php If you look at the information on the follow 2 pages you might become convinced that this should be possible. http://www.comeaucomputing.com/4.0/docs/userman/clang.html http://www.comeaucomputing.com/4.0/docs/userman/options.html There was also a thread back on September 2003 discussing whether this was supported yet by Comeau http://lists.boost.org/MailArchives/boost/msg52701.php It would be nice if someone from Metacomm could patch the --windows flag into the build system for the next round to see if it would allow Comeau to work with dll's on windows. However, it doesn't seem like there's too much interest in fixing this issue. So if no one responds I'll just mark the tests as expected failure and move on -- I've already spent more time on this than I should have... Jeff

Jeff Garland wrote:
Since no one replied, I did some additional digging. It looks like we need to switch the --windows option on if we want Comeau to accept __declspec options. Same conclusion Vladimir Prus brought up a couple weeks back -- no one responded.
http://lists.boost.org/MailArchives/boost/msg67100.php
If you look at the information on the follow 2 pages you might become convinced that this should be possible.
Ah... this clearly indicates __declspec should be explicitly turned on.
However, it doesn't seem like there's too much interest in fixing this issue. So if no one responds I'll just mark the tests as expected failure and move on -- I've already spent more time on this than I should have...
Hmm... that's interesting observation. It appears that at least date_time, program_options and regex (see http://tinyurl.com/5ysxu) are affected by this problem and nobody seems to care. I think I'll mark the dll tests as expectedly failing too, if no solution arrives quickly. - Volodya

However, it doesn't seem like there's too much interest in fixing this issue. So if no one responds I'll just mark the tests as expected failure and move on -- I've already spent more time on this than I should have...
Hmm... that's interesting observation. It appears that at least date_time, program_options and regex (see http://tinyurl.com/5ysxu) are affected by
this
problem and nobody seems to care. I think I'll mark the dll tests as expectedly failing too, if no solution arrives quickly.
I care, but don't have access to como... Could a Jamfile patch solve the problem: <como><*><cxxflags>--whatever applied as a requirement in a few places? Basically we need someone with como to experiment and tell us all what to do... John.

On Tue, 20 Jul 2004 11:07:38 +0100, John Maddock wrote
However, it doesn't seem like there's too much interest in fixing this issue. So if no one responds I'll just mark the tests as expected failure and move on -- I've already spent more time on this than I should have...
Hmm... that's interesting observation. It appears that at least date_time, program_options and regex (see http://tinyurl.com/5ysxu) are affected by this problem and nobody seems to care. I think I'll mark the dll tests as expectedly failing too, if no solution arrives quickly.
I care, but don't have access to como...
Could a Jamfile patch solve the problem:
<como><*><cxxflags>--whatever
applied as a requirement in a few places?
Basically we need someone with como to experiment and tell us all what to do...
I got the feeling Aleksey was going to give it a shot, but I'm sure he's busy... http://lists.boost.org/MailArchives/boost/msg67620.php Maybe we should just apply a patch to one of the Jamfiles for date-time or program options. What would the syntax be to restrict this to win32? Something like this? <como><win32><cxxflags>--windows Jeff

Jeff Garland writes:
On Fri, 16 Jul 2004 19:13:08 -0700, Jeff Garland wrote ...replies to self...
...snip detail some details...
date-time has a number of regession test failures when it is built in the dll mode on windows. They look like this:
Which looks like it is complaining about the BOOST_DATE_TIME_DECL macro. I'm wondering if in config/platform/win32.hpp we need to at como to this little macro that controls the definition of BOOST_HAS_DECLSPEC.
#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC) # define BOOST_HAS_DECLSPEC #endif
Since no one replied, I did some additional digging. It looks like we need to switch the --windows option on if we want Comeau to accept __declspec options. Same conclusion Vladimir Prus brought up a couple weeks back -- no one responded.
http://lists.boost.org/MailArchives/boost/msg67100.php
If you look at the information on the follow 2 pages you might become convinced that this should be possible.
http://www.comeaucomputing.com/4.0/docs/userman/clang.html http://www.comeaucomputing.com/4.0/docs/userman/options.html
There was also a thread back on September 2003 discussing whether this was supported yet by Comeau
http://lists.boost.org/MailArchives/boost/msg52701.php
It would be nice if someone from Metacomm could patch the --windows flag into the build system for the next round to see if it would allow Comeau to work with dll's on windows.
Will do, but...
However, it doesn't seem like there's too much interest in fixing this issue. So if no one responds I'll just mark the tests as expected failure and move on -- I've already spent more time on this than I should have...
That's definitely a valid option. -- Aleksey Gurtovoy MetaCommunications Engineering
participants (4)
-
Aleksey Gurtovoy
-
Jeff Garland
-
John Maddock
-
Vladimir Prus