Problems Building Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5
Ladies and Gentlemen, We have been using Boost on Windows and HP-UX for over five years. Recently I have been attempting to build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5. I started with: ./bootstrap.sh --prefix=/export/home/me/boost_1_63_0 -libdir=/export/home/me/boost_1_63_0/lib --with-toolset=sun ...and that is where I still am. I have been trying every b2 option/configuration that I can file via Google to get Boost 1.63, both with and without C++11, and I am striking out. The Boost documentation is very terse on Sun builds, however the Boost 1.63 release notes say it has been tested for SunOS: Oracle Solaris Studio 12.5 and Oracle Solaris Studio, C++11 12.5. Here's all that the Boost 1.64 doco has to say about Sun builds: sun Oracle Only very recent versions are known to work well with Boost. Note that the Oracle/Sun compiler has a large number of options which effect binary compatibility: it is vital that the libraries are built with the same options that your appliction will use. In particular be aware that the default standard library may not work well with Boost, unless you are building for C++11. The particular compiler options you need can be injected with the b2 command line options cxxflags=``and ``linkflags=. For example to build with the Apache standard library in C++03 mode use b2 cxxflags=-library=stdcxx4 linkflags=-library=stdcxx4. http://www.boost.org/doc/libs/1_63_0/more/getting_started/unix-variants.html Sun Studio The sun module supports the Sun Studiohttp://developers.sun.com/sunstudio/index.jsp C++ compilers for the Solaris OS. The module is initialized using the following syntax: using sun : [version] : [c++-compile-command] : [compiler options] ; This statement may be repeated several times, if you want to configure several versions of the compiler. If the command is not specified, Boost.Build will search for a binary named CC in /opt/SUNWspro/bin and in PATH. When using this compiler on complex C++ code, such as the Boost C++ libraryhttp://boost.org/, it is recommended to specify the following options when intializing the sun module: -library=stlport4 -features=tmplife -features=tmplrefstatic See the Sun C++ Frontend Taleshttp://blogs.sun.com/sga/entry/command_line_options for details. The following options can be provided, using <option-name>option-value syntax: cflags Specifies additional compiler flags that will be used when compiling C sources. cxxflags Specifies additional compiler flags that will be used when compiling C++ sources. compileflags Specifies additional compiler flags that will be used when compiling both C and C++ sources. linkflags Specifies additional command line options that will be passed to the linker. Starting with Sun Studio 12, you can create 64-bit applications by using the address-model=64 property. http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.reference... Can someone provide me with the user-config.jam and b2 options so that I can successfully build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12. 3, 4, or 5? Failing user-config.jam and b2 options for Solaris 11 on x86, can you provide me with user-config.jam and b2 options for Solaris 11 on SPARC with Oracle Developer Studio12.3, 4, or 5? Thank you for your time... Shawn Firth RG Technology Senior Systems Architect shawn.firth@robbinsgioia.commailto:shawn.firth@robbinsgioia.com [Description: Description: RGG] www.robbinsgioia.comhttp://www.robbinsgioia.com/ ________________________________ CONFIDENTIALITY NOTICE: The information contained in this electronic mail and its attachments are privileged and confidential information and are intended for the use of the individual(s) or entity named above and those who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any use, copying or distribution of this communication is strictly prohibited.
On 12/01/2017 23:07, Shawn Firth wrote:
Ladies and Gentlemen,
We have been using Boost on Windows and HP-UX for over five years.
Recently I have been attempting to build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5.
I started with:./bootstrap.sh --prefix=/export/home/me/boost_1_63_0 -libdir=/export/home/me/boost_1_63_0/lib --with-toolset=sun
…and that is where I still am. I have been trying every b2 option/configuration that I can file via Google to get Boost 1.63, both with and without C++11, and I am striking out.
Two questions: 1) Did bjam build OK? If not then I suggest you build it with gcc (you can still build boost with Sun's compiler). 2) What Sun ABI and std library did you want to build with? The Sun/Oracle compiler has a multitude of options, many of which are unusable with Boost (or anything that looks like modern C++ IMO)? Here's what my user-config.jam has: using sun : 12.5 : /opt/developerstudio12.5/bin/CC : <cxxflags>-library=stlport4 <linkflags>-library=stlport4 ; using sun : 12.5s11 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++11 <linkflags>-std=c++11 ; using sun : 12.5s14 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++14 <linkflags>-std=c++14 ; using sun : 12.5s03 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++03 <linkflags>-std=c++03 ; In addition you may need to add stdlib=stlport or stdlib=apache or stdlib=gnu if using the default option. HTH, John.
The Boost documentation is very terse on Sun builds, however the Boost 1.63 release notes say it has been tested for SunOS: Oracle Solaris Studio 12.5 and Oracle Solaris Studio, C++11 12.5. Here’s all that the Boost 1.64 doco has to say about Sun builds:
sun
Oracle
Only very recent versions are known to work well with Boost. Note that the Oracle/Sun compiler has a large number of options which effect binary compatibility: it is vital that the libraries are built with the same options that your appliction will use. In particular be aware that the default standard library may not work well with Boost, /unless you are building for C++11/. The particular compiler options you need can be injected with the b2 command line options cxxflags=``and ``linkflags=. For example to build with the Apache standard library in C++03 mode use b2 cxxflags=-library=stdcxx4 linkflags=-library=stdcxx4.
http://www.boost.org/doc/libs/1_63_0/more/getting_started/unix-variants.html
Sun Studio
The|sun|module supports theSun Studio http://developers.sun.com/sunstudio/index.jspC++ compilers for the Solaris OS.
The module is initialized using the following syntax:
using sun : [|/version/|] : [|/c++-compile-command/|] : [|/compiler options/|] ;
This statement may be repeated several times, if you want to configure several versions of the compiler.
If the command is not specified, Boost.Build will search for a binary named*CC*in|/opt/SUNWspro/bin|and in|PATH|.
When using this compiler on complex C++ code, such as theBoost C++ library http://boost.org/, it is recommended to specify the following options when intializing the|sun|module:
-library=stlport4 -features=tmplife -features=tmplrefstatic
See theSun C++ Frontend Tales http://blogs.sun.com/sga/entry/command_line_optionsfor details.
The following options can be provided, using|/option-value/|syntax:
|*cflags*|**
Specifies additional compiler flags that will be used when compiling C sources.
|*cxxflags*|**
Specifies additional compiler flags that will be used when compiling C++ sources.
|*compileflags*|**
Specifies additional compiler flags that will be used when compiling both C and C++ sources.
|*linkflags*|**
Specifies additional command line options that will be passed to the linker.
Starting with Sun Studio 12, you can create 64-bit applications by using the|address-model=64|property.
http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.reference...
Can someone provide me with the user-config.jamand b2options so that I can successfully build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12. 3, 4, or 5? Failing user-config.jamand b2options for Solaris 11 on x86, can you provide me withuser-config.jamand b2options for Solaris 11 on SPARC with Oracle Developer Studio12.3, 4, or 5?
Thank you for your time…
Shawn Firth
*RG Technology*
Senior Systems Architect
shawn.firth@robbinsgioia.com mailto:shawn.firth@robbinsgioia.com
Description: Description: RGG
www.robbinsgioia.com http://www.robbinsgioia.com/
------------------------------------------------------------------------
CONFIDENTIALITY NOTICE: The information contained in this electronic mail and its attachments are privileged and confidential information and are intended for the use of the individual(s) or entity named above and those who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any use, copying or distribution of this communication is strictly prohibited.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
John, Thank you for your prompt response! To answer your questions: bjam and b2 built without any errors. The code we have using Boost today, on Windows and HP-UX, only uses the Boost serialization library. On Windows it is still a 32bit application, but on HP-UX it is a 64bit application. This is our first time porting this application to Solaris , with the production target being Solaris 11 SPARC (we have another C application that is on Solaris 11 SPARC, and I just ported it to Solaris 11 x86 in <1 day). The Solaris 11 x86 virtual is simply to give us local development environments, with formal testing/production builds occurring on Solaris 11 SPARC. So...I'd like to be able to build on Solaris 11 x86 as 64bit with the newest C++ compiler and C++ Standard Template Library that the Boost serialization library will support. On Solaris 11.3 x86, I have been able to build the Boost serialization library using c++03 and stlport4 (see output and scripts below), but I would really like to use the "newer" Sun compiler options like c++14. According to Oracle the correct STL to use with c++14 is stdcpp: stdcpp - Use libstdc++, the C++ runtime library for modes -compat=g, -std=c++03, -std=c++11, and -std=c++14. Not available with -compat=5 mode. (https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkatz) I tried several times/ways to use c++14, but every time I got the following errors: CC: -library=stdcpp cannot be used with -compat=5 user-config.jam using sun : : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++14 <linkflags>-std=c++14 ; ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stdcpp linkflags=-library=stdcpp toolset=sun variant=release link=static threading=single runtime-link=static address-model=64 install I got the following errors: sun.compile.c++ /export/home/shafir/jaguar_libs/boost_1_63_0/boost/bin.v2/libs/serialization/build/sun/release/address-model-64/link-static/runtime-link-static/basic_text_iprimitive.o CC: -library=stdcpp cannot be used with -compat=5 Something is setting the -compat=5 flag, but it isn't me. So, I would like to know what b2 STL and flags you used in conjunction with c++14? developerstudio12.5 CC References: https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkanq https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPgnaof https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkatz _+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_ c++03 and stlport4 configuration and build output: Boost bootstrap output: ./booststrap/sh --with-toolset=sun -n Building Boost.Build engine with toolset sun... tools/build/src/engine/bin.solarisx86/b2 -n Detecting Python version... 2.7 -n Detecting Python root... /usr -n Unicode/ICU support for Boost.Regex?... not found. Generating Boost.Build configuration in project-config.jam... Bootstrapping is done. To build, run: ./b2 user-config.jam using sun : : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++03 <linkflags>-std=c++03 ; build_boost163_sol11x86.sh #! /bin/sh BOOSTDIR=/export/home/shafir/jaguar_libs/boost_1_63_0 PATH=${PREFIX}:${PATH} BOOST_VERSION=163 export PATH BUILDLIBLIST="--with-serialization" for BUILDLIB in $BUILDLIBLIST; do ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=static threading=single runtime-link=static address-model=64 install ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=shared threading=single runtime-link=shared address-model=64 install ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=static threading=multi runtime-link=static address-model=64 install ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=shared threading=multi runtime-link=shared address-model=64 install ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=static threading=single runtime-link=static address-model=64 install ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=shared threading=single runtime-link=shared address-model=64 install ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=static threading=multi runtime-link=static address-model=64 install ./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=shared threading=multi runtime-link=shared address-model=64 install done Please let me know if you have any questions. Thanks. Shawn Firth RG Technology Senior Systems Architect 11 Canal Center Plaza, Suite 107 Alexandria VA 22314 703.739.5642 office shawn.firth@robbinsgioia.com www.robbinsgioia.com -----Original Message----- From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of John Maddock Sent: Friday, January 13, 2017 3:40 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Problems Building Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5 On 12/01/2017 23:07, Shawn Firth wrote:
Ladies and Gentlemen,
We have been using Boost on Windows and HP-UX for over five years.
Recently I have been attempting to build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5.
I started with:./bootstrap.sh --prefix=/export/home/me/boost_1_63_0 -libdir=/export/home/me/boost_1_63_0/lib --with-toolset=sun
.and that is where I still am. I have been trying every b2 option/configuration that I can file via Google to get Boost 1.63, both with and without C++11, and I am striking out.
Two questions: 1) Did bjam build OK? If not then I suggest you build it with gcc (you can still build boost with Sun's compiler). 2) What Sun ABI and std library did you want to build with? The Sun/Oracle compiler has a multitude of options, many of which are unusable with Boost (or anything that looks like modern C++ IMO)? Here's what my user-config.jam has: using sun : 12.5 : /opt/developerstudio12.5/bin/CC : <cxxflags>-library=stlport4 <linkflags>-library=stlport4 ; using sun : 12.5s11 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++11 <linkflags>-std=c++11 ; using sun : 12.5s14 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++14 <linkflags>-std=c++14 ; using sun : 12.5s03 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++03 <linkflags>-std=c++03 ; In addition you may need to add stdlib=stlport or stdlib=apache or stdlib=gnu if using the default option. HTH, John.
The Boost documentation is very terse on Sun builds, however the Boost 1.63 release notes say it has been tested for SunOS: Oracle Solaris Studio 12.5 and Oracle Solaris Studio, C++11 12.5. Here's all that the Boost 1.64 doco has to say about Sun builds:
sun
Oracle
Only very recent versions are known to work well with Boost. Note that the Oracle/Sun compiler has a large number of options which effect binary compatibility: it is vital that the libraries are built with the same options that your appliction will use. In particular be aware that the default standard library may not work well with Boost, /unless you are building for C++11/. The particular compiler options you need can be injected with the b2 command line options cxxflags=``and ``linkflags=. For example to build with the Apache standard library in C++03 mode use b2 cxxflags=-library=stdcxx4 linkflags=-library=stdcxx4.
http://www.boost.org/doc/libs/1_63_0/more/getting_started/unix-variant s.html
Sun Studio
The|sun|module supports theSun Studio http://developers.sun.com/sunstudio/index.jspC++ compilers for the Solaris OS.
The module is initialized using the following syntax:
using sun : [|/version/|] : [|/c++-compile-command/|] : [|/compiler options/|] ;
This statement may be repeated several times, if you want to configure several versions of the compiler.
If the command is not specified, Boost.Build will search for a binary named*CC*in|/opt/SUNWspro/bin|and in|PATH|.
When using this compiler on complex C++ code, such as theBoost C++ library http://boost.org/, it is recommended to specify the following options when intializing the|sun|module:
-library=stlport4 -features=tmplife -features=tmplrefstatic
See theSun C++ Frontend Tales http://blogs.sun.com/sga/entry/command_line_optionsfor details.
The following options can be provided, using|/option-value/|syntax:
|*cflags*|**
Specifies additional compiler flags that will be used when compiling C sources.
|*cxxflags*|**
Specifies additional compiler flags that will be used when compiling C++ sources.
|*compileflags*|**
Specifies additional compiler flags that will be used when compiling both C and C++ sources.
|*linkflags*|**
Specifies additional command line options that will be passed to the linker.
Starting with Sun Studio 12, you can create 64-bit applications by using the|address-model=64|property.
http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.ref erence.tools.compiler.sun
Can someone provide me with the user-config.jamand b2options so that I can successfully build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12. 3, 4, or 5? Failing user-config.jamand b2options for Solaris 11 on x86, can you provide me withuser-config.jamand b2options for Solaris 11 on SPARC with Oracle Developer Studio12.3, 4, or 5?
Thank you for your time.
Shawn Firth
*RG Technology*
Senior Systems Architect
shawn.firth@robbinsgioia.com mailto:shawn.firth@robbinsgioia.com
Description: Description: RGG
www.robbinsgioia.com http://www.robbinsgioia.com/
---------------------------------------------------------------------- --
CONFIDENTIALITY NOTICE: The information contained in this electronic mail and its attachments are privileged and confidential information and are intended for the use of the individual(s) or entity named above and those who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any use, copying or distribution of this communication is strictly prohibited.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
According to Oracle the correct STL to use with c++14 is stdcpp: stdcpp - Use libstdc++, the C++ runtime library for modes -compat=g, -std=c++03, -std=c++11, and -std=c++14. Not available with -compat=5 mode. (https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkatz)
I tried several times/ways to use c++14, but every time I got the following errors: CC: -library=stdcpp cannot be used with -compat=5
That's a misuse of the compiler I believe, you shouldn't need to set the stdlib explicitly like that, just try: cxxflags=-std=c++14 linkflags=-std=c++14 and linking to the correct library should be taken care of for you (by the the compiler, nothing to do with bjam). If you want to see what command line options bjam is creating use the -d2 option. Also suggest you cd into libs/config/test and run: bjam <options> -d2 config_info config_info being the closest to a hello-world app we have, and helpfully prints out a bunch of diagnostic info that looks like this: http://www.boost.org/development/tests/develop/developer/output/oracle-intel... You'll find that info in config_info.output under bin.v2/libs/config/.... it's a useful way to verify that the build options you're using are really doing what you think they are. HTH, John.
user-config.jam using sun : : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++14 <linkflags>-std=c++14 ;
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stdcpp linkflags=-library=stdcpp toolset=sun variant=release link=static threading=single runtime-link=static address-model=64 install
I got the following errors: sun.compile.c++ /export/home/shafir/jaguar_libs/boost_1_63_0/boost/bin.v2/libs/serialization/build/sun/release/address-model-64/link-static/runtime-link-static/basic_text_iprimitive.o CC: -library=stdcpp cannot be used with -compat=5
Something is setting the -compat=5 flag, but it isn't me.
So, I would like to know what b2 STL and flags you used in conjunction with c++14?
developerstudio12.5 CC References: https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkanq
https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPgnaof
https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkatz
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_
c++03 and stlport4 configuration and build output:
Boost bootstrap output:
./booststrap/sh --with-toolset=sun -n Building Boost.Build engine with toolset sun... tools/build/src/engine/bin.solarisx86/b2 -n Detecting Python version... 2.7 -n Detecting Python root... /usr -n Unicode/ICU support for Boost.Regex?... not found. Generating Boost.Build configuration in project-config.jam... Bootstrapping is done. To build, run: ./b2
user-config.jam using sun : : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++03 <linkflags>-std=c++03 ;
build_boost163_sol11x86.sh #! /bin/sh BOOSTDIR=/export/home/shafir/jaguar_libs/boost_1_63_0 PATH=${PREFIX}:${PATH} BOOST_VERSION=163 export PATH
BUILDLIBLIST="--with-serialization"
for BUILDLIB in $BUILDLIBLIST; do
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=static threading=single runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=shared threading=single runtime-link=shared address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=static threading=multi runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=shared threading=multi runtime-link=shared address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=static threading=single runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=shared threading=single runtime-link=shared address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=static threading=multi runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=shared threading=multi runtime-link=shared address-model=64 install
done
Please let me know if you have any questions. Thanks.
Shawn Firth RG Technology Senior Systems Architect 11 Canal Center Plaza, Suite 107 Alexandria VA 22314 703.739.5642 office shawn.firth@robbinsgioia.com
www.robbinsgioia.com
-----Original Message----- From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of John Maddock Sent: Friday, January 13, 2017 3:40 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Problems Building Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5
On 12/01/2017 23:07, Shawn Firth wrote:
Ladies and Gentlemen,
We have been using Boost on Windows and HP-UX for over five years.
Recently I have been attempting to build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5.
I started with:./bootstrap.sh --prefix=/export/home/me/boost_1_63_0 -libdir=/export/home/me/boost_1_63_0/lib --with-toolset=sun
.and that is where I still am. I have been trying every b2 option/configuration that I can file via Google to get Boost 1.63, both with and without C++11, and I am striking out.
Two questions:
1) Did bjam build OK? If not then I suggest you build it with gcc (you can still build boost with Sun's compiler). 2) What Sun ABI and std library did you want to build with? The Sun/Oracle compiler has a multitude of options, many of which are unusable with Boost (or anything that looks like modern C++ IMO)?
Here's what my user-config.jam has:
using sun : 12.5 : /opt/developerstudio12.5/bin/CC : <cxxflags>-library=stlport4 <linkflags>-library=stlport4 ; using sun : 12.5s11 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++11 <linkflags>-std=c++11 ; using sun : 12.5s14 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++14 <linkflags>-std=c++14 ; using sun : 12.5s03 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++03 <linkflags>-std=c++03 ;
In addition you may need to add stdlib=stlport or stdlib=apache or stdlib=gnu if using the default option.
HTH, John.
The Boost documentation is very terse on Sun builds, however the Boost 1.63 release notes say it has been tested for SunOS: Oracle Solaris Studio 12.5 and Oracle Solaris Studio, C++11 12.5. Here's all that the Boost 1.64 doco has to say about Sun builds:
sun
Oracle
Only very recent versions are known to work well with Boost. Note that the Oracle/Sun compiler has a large number of options which effect binary compatibility: it is vital that the libraries are built with the same options that your appliction will use. In particular be aware that the default standard library may not work well with Boost, /unless you are building for C++11/. The particular compiler options you need can be injected with the b2 command line options cxxflags=``and ``linkflags=. For example to build with the Apache standard library in C++03 mode use b2 cxxflags=-library=stdcxx4 linkflags=-library=stdcxx4.
http://www.boost.org/doc/libs/1_63_0/more/getting_started/unix-variant s.html
Sun Studio
The|sun|module supports theSun Studio http://developers.sun.com/sunstudio/index.jspC++ compilers for the Solaris OS.
The module is initialized using the following syntax:
using sun : [|/version/|] : [|/c++-compile-command/|] : [|/compiler options/|] ;
This statement may be repeated several times, if you want to configure several versions of the compiler.
If the command is not specified, Boost.Build will search for a binary named*CC*in|/opt/SUNWspro/bin|and in|PATH|.
When using this compiler on complex C++ code, such as theBoost C++ library http://boost.org/, it is recommended to specify the following options when intializing the|sun|module:
-library=stlport4 -features=tmplife -features=tmplrefstatic
See theSun C++ Frontend Tales http://blogs.sun.com/sga/entry/command_line_optionsfor details.
The following options can be provided, using|/option-value/|syntax:
|*cflags*|**
Specifies additional compiler flags that will be used when compiling C sources.
|*cxxflags*|**
Specifies additional compiler flags that will be used when compiling C++ sources.
|*compileflags*|**
Specifies additional compiler flags that will be used when compiling both C and C++ sources.
|*linkflags*|**
Specifies additional command line options that will be passed to the linker.
Starting with Sun Studio 12, you can create 64-bit applications by using the|address-model=64|property.
http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.ref erence.tools.compiler.sun
Can someone provide me with the user-config.jamand b2options so that I can successfully build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12. 3, 4, or 5? Failing user-config.jamand b2options for Solaris 11 on x86, can you provide me withuser-config.jamand b2options for Solaris 11 on SPARC with Oracle Developer Studio12.3, 4, or 5?
Thank you for your time.
Shawn Firth
*RG Technology*
Senior Systems Architect
shawn.firth@robbinsgioia.com mailto:shawn.firth@robbinsgioia.com
Description: Description: RGG
www.robbinsgioia.com http://www.robbinsgioia.com/
---------------------------------------------------------------------- --
CONFIDENTIALITY NOTICE: The information contained in this electronic mail and its attachments are privileged and confidential information and are intended for the use of the individual(s) or entity named above and those who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any use, copying or distribution of this communication is strictly prohibited.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
John, Thanks for the help!!! Due to my build script, the bin.v2 was being created in the boost directory, and therefore my user-config.jam in the main Boost directory was not being used, and therefore my -std=c++14 flags were not being picked up (which I saw in the b2 -d2 output. To solve this I just changed my build script to include " cflags=-std=c++14 linkflags=-std=c++14": ./b2 -d2 $BUILDLIB --build-dir=$BOOSTDIR --with-test --layout=versioned --prefix=$BOOSTDIR cflags=-std=c++14 linkflags=-std=c++14 toolset=sun variant=release link=static threading=single runtime-link=static address-model=64 install ...and I got clean builds for all the serialization library configurations I needed. Thanks again! Shawn Firth RG Technology Senior Systems Architect 11 Canal Center Plaza, Suite 107 Alexandria VA 22314 shawn.firth@robbinsgioia.com www.robbinsgioia.com -----Original Message----- From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of John Maddock Sent: Saturday, January 14, 2017 3:29 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Problems Building Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5
According to Oracle the correct STL to use with c++14 is stdcpp: stdcpp - Use libstdc++, the C++ runtime library for modes -compat=g, -std=c++03, -std=c++11, and -std=c++14. Not available with -compat=5 mode. (https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkat z)
I tried several times/ways to use c++14, but every time I got the following errors: CC: -library=stdcpp cannot be used with -compat=5
That's a misuse of the compiler I believe, you shouldn't need to set the stdlib explicitly like that, just try: cxxflags=-std=c++14 linkflags=-std=c++14 and linking to the correct library should be taken care of for you (by the the compiler, nothing to do with bjam). If you want to see what command line options bjam is creating use the -d2 option. Also suggest you cd into libs/config/test and run: bjam <options> -d2 config_info config_info being the closest to a hello-world app we have, and helpfully prints out a bunch of diagnostic info that looks like this: http://www.boost.org/development/tests/develop/developer/output/oracle-intel... You'll find that info in config_info.output under bin.v2/libs/config/.... it's a useful way to verify that the build options you're using are really doing what you think they are. HTH, John.
user-config.jam using sun : : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++14 <linkflags>-std=c++14 ;
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stdcpp linkflags=-library=stdcpp toolset=sun variant=release link=static threading=single runtime-link=static address-model=64 install
I got the following errors: sun.compile.c++ /export/home/shafir/jaguar_libs/boost_1_63_0/boost/bin.v2/libs/seriali zation/build/sun/release/address-model-64/link-static/runtime-link-sta tic/basic_text_iprimitive.o CC: -library=stdcpp cannot be used with -compat=5
Something is setting the -compat=5 flag, but it isn't me.
So, I would like to know what b2 STL and flags you used in conjunction with c++14?
developerstudio12.5 CC References: https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkanq
https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPgnaof
https://docs.oracle.com/cd/E60778_01/html/E60746/bkana.html#OSSCPbkatz
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_
c++03 and stlport4 configuration and build output:
Boost bootstrap output:
./booststrap/sh --with-toolset=sun -n Building Boost.Build engine with toolset sun... tools/build/src/engine/bin.solarisx86/b2 -n Detecting Python version... 2.7 -n Detecting Python root... /usr -n Unicode/ICU support for Boost.Regex?... not found. Generating Boost.Build configuration in project-config.jam... Bootstrapping is done. To build, run: ./b2
user-config.jam using sun : : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++03 <linkflags>-std=c++03 ;
build_boost163_sol11x86.sh #! /bin/sh BOOSTDIR=/export/home/shafir/jaguar_libs/boost_1_63_0 PATH=${PREFIX}:${PATH} BOOST_VERSION=163 export PATH
BUILDLIBLIST="--with-serialization"
for BUILDLIB in $BUILDLIBLIST; do
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=static threading=single runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=shared threading=single runtime-link=shared address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=static threading=multi runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=release link=shared threading=multi runtime-link=shared address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=static threading=single runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=shared threading=single runtime-link=shared address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=static threading=multi runtime-link=static address-model=64 install
./b2 $BUILDLIB --build-dir=$BOOSTDIR --layout=versioned --prefix=$BOOSTDIR cxxflags=-library=stlport4 linkflags=-library=stlport4 toolset=sun variant=debug link=shared threading=multi runtime-link=shared address-model=64 install
done
Please let me know if you have any questions. Thanks.
Shawn Firth RG Technology Senior Systems Architect 11 Canal Center Plaza, Suite 107 Alexandria VA 22314 703.739.5642 office shawn.firth@robbinsgioia.com
www.robbinsgioia.com
-----Original Message----- From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of John Maddock Sent: Friday, January 13, 2017 3:40 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Problems Building Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5
On 12/01/2017 23:07, Shawn Firth wrote:
Ladies and Gentlemen,
We have been using Boost on Windows and HP-UX for over five years.
Recently I have been attempting to build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12.5.
I started with:./bootstrap.sh --prefix=/export/home/me/boost_1_63_0 -libdir=/export/home/me/boost_1_63_0/lib --with-toolset=sun
.and that is where I still am. I have been trying every b2 option/configuration that I can file via Google to get Boost 1.63, both with and without C++11, and I am striking out.
Two questions:
1) Did bjam build OK? If not then I suggest you build it with gcc (you can still build boost with Sun's compiler). 2) What Sun ABI and std library did you want to build with? The Sun/Oracle compiler has a multitude of options, many of which are unusable with Boost (or anything that looks like modern C++ IMO)?
Here's what my user-config.jam has:
using sun : 12.5 : /opt/developerstudio12.5/bin/CC : <cxxflags>-library=stlport4 <linkflags>-library=stlport4 ; using sun : 12.5s11 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++11 <linkflags>-std=c++11 ; using sun : 12.5s14 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++14 <linkflags>-std=c++14 ; using sun : 12.5s03 : /opt/developerstudio12.5/bin/CC : <cxxflags>-std=c++03 <linkflags>-std=c++03 ;
In addition you may need to add stdlib=stlport or stdlib=apache or stdlib=gnu if using the default option.
HTH, John.
The Boost documentation is very terse on Sun builds, however the Boost 1.63 release notes say it has been tested for SunOS: Oracle Solaris Studio 12.5 and Oracle Solaris Studio, C++11 12.5. Here's all that the Boost 1.64 doco has to say about Sun builds:
sun
Oracle
Only very recent versions are known to work well with Boost. Note that the Oracle/Sun compiler has a large number of options which effect binary compatibility: it is vital that the libraries are built with the same options that your appliction will use. In particular be aware that the default standard library may not work well with Boost, /unless you are building for C++11/. The particular compiler options you need can be injected with the b2 command line options cxxflags=``and ``linkflags=. For example to build with the Apache standard library in C++03 mode use b2 cxxflags=-library=stdcxx4 linkflags=-library=stdcxx4.
http://www.boost.org/doc/libs/1_63_0/more/getting_started/unix-varian t s.html
Sun Studio
The|sun|module supports theSun Studio http://developers.sun.com/sunstudio/index.jspC++ compilers for the Solaris OS.
The module is initialized using the following syntax:
using sun : [|/version/|] : [|/c++-compile-command/|] : [|/compiler options/|] ;
This statement may be repeated several times, if you want to configure several versions of the compiler.
If the command is not specified, Boost.Build will search for a binary named*CC*in|/opt/SUNWspro/bin|and in|PATH|.
When using this compiler on complex C++ code, such as theBoost C++ library http://boost.org/, it is recommended to specify the following options when intializing the|sun|module:
-library=stlport4 -features=tmplife -features=tmplrefstatic
See theSun C++ Frontend Tales http://blogs.sun.com/sga/entry/command_line_optionsfor details.
The following options can be provided, using|/option-value/|syntax:
|*cflags*|**
Specifies additional compiler flags that will be used when compiling C sources.
|*cxxflags*|**
Specifies additional compiler flags that will be used when compiling C++ sources.
|*compileflags*|**
Specifies additional compiler flags that will be used when compiling both C and C++ sources.
|*linkflags*|**
Specifies additional command line options that will be passed to the linker.
Starting with Sun Studio 12, you can create 64-bit applications by using the|address-model=64|property.
http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.re f erence.tools.compiler.sun
Can someone provide me with the user-config.jamand b2options so that I can successfully build Boost 1.63 on Solaris 11.3 x86 with Oracle Developer Studio12. 3, 4, or 5? Failing user-config.jamand b2options for Solaris 11 on x86, can you provide me withuser-config.jamand b2options for Solaris 11 on SPARC with Oracle Developer Studio12.3, 4, or 5?
Thank you for your time.
Shawn Firth
*RG Technology*
Senior Systems Architect
shawn.firth@robbinsgioia.com mailto:shawn.firth@robbinsgioia.com
Description: Description: RGG
www.robbinsgioia.com http://www.robbinsgioia.com/
--------------------------------------------------------------------- - --
CONFIDENTIALITY NOTICE: The information contained in this electronic mail and its attachments are privileged and confidential information and are intended for the use of the individual(s) or entity named above and those who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any use, copying or distribution of this communication is strictly prohibited.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
John Maddock
-
Shawn Firth