compilation problem on solaris-gcc with stlport
Does anyone know why I am seeing problems? I am trying to compile boost on a SunOS 5.6 with gcc 2.95.3, using stlport 4.5.3. I use the following cmd: bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBuild= debug release <stlport-iostream>on" "-sBUILD=debug release <runtime-link>static/dynamic" "-sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3" And I get errors such as: In file included from /core/elements/cots/stlport-4.5.3/stlport/stl/_iterator_base.h:38, from /core/elements/cots/stlport-4.5.3/stlport/stl/_algobase.h:55, from /core/elements/cots/stlport-4.5.3/stlport/stl/_list.h:34, from /core/elements/cots/stlport-4.5.3/stlport/list:35, from libs/regex/build/../src/c_regex_traits.cpp:27: /core/elements/cots/stlport-4.5.3/stlport/stl/type_traits.h: At top level: /core/elements/cots/stlport-4.5.3/stlport/stl/type_traits.h:68: template with C linkage /core/elements/cots/stlport-4.5.3/stlport/stl/type_traits.h:80: template with C linkage /core/elements/cots/stlport-4.5.3/stlport/stl/type_traits.h:91: template with C linkage /core/elements/cots/stlport-4.5.3/stlport/stl/type_traits.h:92: template with C linkage /core/elements/cots/stlport-4.5.3/stlport/stl/type_traits.h:213: template with C linkage ...failed gcc-C++-action libs/regex/build/bin/libboost_regex.a/gcc-stlport/release/runtime-link-d ynamic/regex.o... gcc-C++-action gcc-C++libs/regex/build/bin/libboost_regex.a/gcc-stlport/release/runtime gcc-C++-link-dynamic/regex_debug.o In file included from /core/elements/cots/stlport-4.5.3/stlport/stl/_alloc.h:64, from /core/elements/cots/stlport-4.5.3/stlport/memory:28, from /core/elements/cots/stlport-4.5.3/stlport/stl/_string.h:23, from /core/elements/cots/stlport-4.5.3/stlport/string:42, from /core/elements/cots/boost-1.28.0/boost/regex/config.hpp:86, from libs/regex/build/../src/regex_debug.cpp:26: /core/elements/cots/stlport-4.5.3/stlport/stl/_threads.h:207: template with C linkage /core/elements/cots/stlport-4.5.3/stlport/stl/_threads.h:406: parse error before `&' /core/elements/cots/stlport-4.5.3/stlport/stl/_threads.h:407: parse error before `&' /core/elements/cots/stlport-4.5.3/stlport/stl/_threads.h:407: `_STL::_STLP_mutex::operator =(...)' must take exactly one argum /core/elements/cots/stlport-4.5.3/stlport/stl/_threads.h:408: confused by earlier errors, bailing out Thank you, Virginia
"Virginia Volk"
Does anyone know why I am seeing problems?
I am trying to compile boost on a SunOS 5.6 with gcc 2.95.3, using stlport 4.5.3.
I use the following cmd:
bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBuild= debug release <stlport-iostream>on" "-sBUILD=debug release <runtime-link>static/dynamic" "-sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3"
That's a pretty confused command-line. The "-sBuild= ..." option will have no effect. What is bjam_solaris? Looks to me like you're using an old release of Boost. Is this 1.28.0, or something earlier? -Dave
bjam_solaris is the executable of bjam I downloaded from the boost
site for solaris. I renamed it so I would remember what platform it
was for. Yes, I believe the -sBuild lines have no affect, they do
not change the errors if I remove them. Why do they have no affect?
How do I compile both debug and release, static and dynamic
libraries? I am using the source code for boost 1.28.0.
Thank you very much,
Virginia
--- In Boost-Users@y..., "David Abrahams"
"Virginia Volk"
wrote in message news:001101c213d1$75c6ca50$b74414ac@v... Does anyone know why I am seeing problems?
I am trying to compile boost on a SunOS 5.6 with gcc 2.95.3,
using
stlport 4.5.3.
I use the following cmd:
bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBuild= debug release <stlport-iostream>on" "-sBUILD=debug release <runtime-link>static/dynamic" "-sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3"
That's a pretty confused command-line. The "-sBuild= ..." option will have no effect. What is bjam_solaris?
Looks to me like you're using an old release of Boost. Is this 1.28.0, or something earlier?
-Dave
"vavboostid"
bjam_solaris is the executable of bjam I downloaded from the boost site for solaris. I renamed it so I would remember what platform it was for. Yes, I believe the -sBuild lines have no affect, they do not change the errors if I remove them. Why do they have no affect?
Because the variables are case-sensitive. -sBUILD=, as you write later on, is the proper spelling.
How do I compile both debug and release, static and dynamic libraries? I am using the source code for boost 1.28.0.
Not every one of the buildable boost libraries supplies both static and dynamic libraries on all platforms; you'll need to rely on the Jamfiles which specify them to "do the right thing". The <runtime-link> feature controls which C++ runtime library version gets linked to the result, not whether it's static or dynamic. The best you can do is bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBUILD=debug release" -sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3 HTH, Dave
Thank you very much, Virginia
--- In Boost-Users@y..., "David Abrahams"
wrote: "Virginia Volk"
wrote in message news:001101c213d1$75c6ca50$b74414ac@v... Does anyone know why I am seeing problems?
I am trying to compile boost on a SunOS 5.6 with gcc 2.95.3,
using
stlport 4.5.3.
I use the following cmd:
bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBuild= debug release <stlport-iostream>on" "-sBUILD=debug release <runtime-link>static/dynamic" "-sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3"
That's a pretty confused command-line. The "-sBuild= ..." option will have no effect. What is bjam_solaris?
Looks to me like you're using an old release of Boost. Is this 1.28.0, or something earlier?
-Dave
Thank you for the help so far. Ok, I run the following line:
bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBUILD=debug release"
"-sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3"
where:
-bjam_solaris - www.boost.org Boost.Jam executable for SUN Solaris
-boost 1.28.0
-stlport 4.5.3
-gcc 2.95.3
I still get the following errors (only first part reprinted here for
size):
---------------------------------------------------------------------
skipping Boost.Python library build
You can configure the location of your python installation, by setting:
PYTHON_ROOT - currently "/usr/local"
PYTHON_VERSION - The 2-part python Major.Minor version number (e.g.
"2.2", NOT "2.2.1") - currently "1.5"
The following are automatically configured from PYTHON_ROOT if not
otherwise set:
PYTHON_INCLUDES - path to Python #include directories; currently
"/usr/local/include/python1.5"
PYTHON_LIB_PATH - path to Python library; currently
"/usr/local/lib/python1.5/config"
PYTHON_STDLIB_PATH - path to Python standard library modules;
currently
"/usr/local/lib/python1.5"
---------------------------------------------------------------------
...found 818 targets...
...updating 103 targets...
MkDir1 libs/regex/build/bin-stage
MkDir1 libs/regex/build/bin
MkDir1 libs/regex/build/bin/libboost_regex.a
MkDir1 libs/regex/build/bin/libboost_regex.a/gcc-stlport
MkDir1 libs/regex/build/bin/libboost_regex.a/gcc-stlport/debug
MkDir1
libs/regex/build/bin/libboost_regex.a/gcc-stlport/debug/runtime-link-dyn
amic
gcc-C++-action
libs/regex/build/bin/libboost_regex.a/gcc-stlport/debug/runtime-link-dyn
amic/c_regex_traits.o
In file included from
/core/elements/cots/stlport-4.5.3/stlport/stl/_algobase.h:51,
from
/core/elements/cots/stlport-4.5.3/stlport/stl/_list.h:34,
from /core/elements/cots/stlport-4.5.3/stlport/list:35,
from libs/regex/build/../src/c_regex_traits.cpp:27:
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:37: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:52: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In method
`_STL::pair<_T1,_T2>::pair(const _STL::pair<_U1,_U2> &)':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:52: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function `bool
_STL::operator ==(const _STL::pair<_T1,_T2> &, const _STL::pair<_T1,_T2>
&)':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:61: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function `bool
_STL::operator <(const _STL::pair<_T1,_T2> &, const _STL::pair<_T1,_T2>
&)':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:67: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function `bool
_STL::operator !=(const _STL::pair<_T1,_T2> &, const _STL::pair<_T1,_T2>
&)':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:75: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function `bool
_STL::operator >(const _STL::pair<_T1,_T2> &, const _STL::pair<_T1,_T2>
&)':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:80: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function `bool
_STL::operator <=(const _STL::pair<_T1,_T2> &, const _STL::pair<_T1,_T2>
&)':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:85: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function `bool
_STL::operator >=(const _STL::pair<_T1,_T2> &, const _STL::pair<_T1,_T2>
&)':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:90: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function
`struct _STL::pair<_T1,const _T2 *> _STL::make_pair(const _T1 &, const
_T2 (&)[_Sz])':
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:101: template with
C linkage
/core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h: In function
`struct _STL::pair
bjam_solaris is the executable of bjam I downloaded from the boost site for solaris. I renamed it so I would remember what platform it was for. Yes, I believe the -sBuild lines have no affect, they do not change the errors if I remove them. Why do they have no affect?
Because the variables are case-sensitive. -sBUILD=, as you write later on, is the proper spelling.
How do I compile both debug and release, static and dynamic libraries? I am using the source code for boost 1.28.0.
Not every one of the buildable boost libraries supplies both static and dynamic libraries on all platforms; you'll need to rely on the Jamfiles which specify them to "do the right thing". The <runtime-link> feature controls which C++ runtime library version gets linked to the result, not whether it's static or dynamic. The best you can do is bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBUILD=debug release" -sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3 HTH, Dave
Thank you very much, Virginia
--- In Boost-Users@y..., "David Abrahams"
wrote: "Virginia Volk"
wrote in message news:001101c213d1$75c6ca50$b74414ac@v... Does anyone know why I am seeing problems?
I am trying to compile boost on a SunOS 5.6 with gcc 2.95.3,
using
stlport 4.5.3.
I use the following cmd:
bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBuild= debug release <stlport-iostream>on" "-sBUILD=debug release <runtime-link>static/dynamic" "-sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3"
That's a pretty confused command-line. The "-sBuild= ..." option will have no effect. What is bjam_solaris?
Looks to me like you're using an old release of Boost. Is this 1.28.0, or something earlier?
-Dave
Info: http://www.boost.org Wiki: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl Unsubscribe: mailto:boost-users-unsubscribe@yahoogroups.com Your use of Yahoo! Groups is subject to the Yahoo! http://docs.yahoo.com/info/terms/ Terms of Service. [Non-text portions of this message have been removed]
"Virginia Volk"
Thank you for the help so far. Ok, I run the following line:
bjam_solaris -a "-sTOOLS=gcc-stlport" "-sBUILD=debug release" "-sSTLPORT_ROOT=/core/elements/cots/stlport-4.5.3"
where: -bjam_solaris - www.boost.org Boost.Jam executable for SUN Solaris -boost 1.28.0 -stlport 4.5.3 -gcc 2.95.3
I still get the following errors (only first part reprinted here for size):
--------------------------------------------------------------------- skipping Boost.Python library build
<snip> are you trying to build Boost.Python? If so, follow the configuration instructions at www.boost.org/libs/python/building.html. Otherwise you can ignore this part.
--------------------------------------------------------------------- ...found 818 targets... ...updating 103 targets... MkDir1 libs/regex/build/bin-stage MkDir1 libs/regex/build/bin MkDir1 libs/regex/build/bin/libboost_regex.a MkDir1 libs/regex/build/bin/libboost_regex.a/gcc-stlport MkDir1 libs/regex/build/bin/libboost_regex.a/gcc-stlport/debug MkDir1 libs/regex/build/bin/libboost_regex.a/gcc-stlport/debug/runtime-link-dyn amic gcc-C++-action libs/regex/build/bin/libboost_regex.a/gcc-stlport/debug/runtime-link-dyn amic/c_regex_traits.o In file included from /core/elements/cots/stlport-4.5.3/stlport/stl/_algobase.h:51, from /core/elements/cots/stlport-4.5.3/stlport/stl/_list.h:34, from /core/elements/cots/stlport-4.5.3/stlport/list:35, from libs/regex/build/../src/c_regex_traits.cpp:27: /core/elements/cots/stlport-4.5.3/stlport/stl/_pair.h:37: template with C linkage
<snip> It looks to me as though you've found an interaction between STLPort and the solaris "C" headers. Perhaps somewhere there's an unterminated extern "C" {... block? If you look at the top of c_regex_traits.cpp, you'll see it begins: #define BOOST_REGEX_SOURCE #include <clocale> #include <cstdio> #include <list> And your problem has already happened by this point. So, I guess all I can tell you is "it's not a Boost bug". You might try looking at the preprocessed compiler output to see what's going on here. -Dave
When compiling with Mipspro 7.3 using the command line
bjam -a "-sTOOLS=mipspro" "-sBUILD=debug release"
I get the following errors:
...found 441 targets...
...updating 95 targets...
MkDir1 libs/regex/build/bin/libboost_regex.a/mipspro
MkDir1 libs/regex/build/bin/libboost_regex.a/mipspro/debug
MkDir1
libs/regex/build/bin/libboost_regex.a/mipspro/debug/runtime-link-dynamic
mipspro-C++-action
libs/regex/build/bin/libboost_regex.a/mipspro/debug/runtime-link-dynamic
/c_regex_traits.o
mipspro-C++-action
libs/regex/build/bin/libboost_regex.a/mipspro/debug/runtime-link-dynamic
/c_regex_traits_common.o
mipspro-C++-action
libs/regex/build/bin/libboost_regex.a/mipspro/debug/runtime-link-dynamic
/cpp_regex_traits.o
mipspro-C++-action
libs/regex/build/bin/libboost_regex.a/mipspro/debug/runtime-link-dynamic
/cregex.o
cc-1474 CC: ERROR File =
/core/elements/cots/boost-1.28.0/boost/regex/detail/instances.hpp, Line
= 104
No instance of overloaded function "boost::reg_expression
Virginia Volk wrote:
... cc-1474 CC: ERROR File = /core/elements/cots/boost-1.28.0/boost/regex/detail/instances.hpp, Line = 104 No instance of overloaded function "boost::reg_expression
::reg_expression" matches the specified type. template reg_expression
::reg_expression (c onst BOOST_DEFAULT_ALLOCATOR(BOOST_REGEX_CHAR_T)&); ^
...
Any ideas? Thank you, Virginia
I reported the same problem last week, and John replied that the fix is in the CVS source but not yet released. This is his reply, with a reference to the fix: http://aspn.activestate.com/ASPN/Mail/Message/boost/1251253 -- Dick Hadsell 914-259-6320 Fax: 914-259-6499 Reply-to: hadsell@blueskystudios.com Blue Sky Studios http://www.blueskystudios.com 44 South Broadway, White Plains, NY 10601
participants (4)
-
David Abrahams
-
Richard Hadsell
-
vavboostid
-
Virginia Volk