linuxboostcross-compilingsolarissparc

boost-iostreams 1.59 sparc-solaris crosscompilation fails


boost sources: sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

host machine x64-linux, ubuntu 20

crosscompiler sparc-sun-solaris2.10-g++ (GCC) 4.9.3

steps, based on this tutorial https://www.boost.org/build/doc/html/bbv2/tasks/crosscompile.html

./bootstrap.sh --with-libraries=iostreams

# replace in file project-config.jam the line "using gcc ;" with the line "using gcc : sparc : /opt/crosssolaris/bin/sparc-sun-solaris2.10-g++ ; "
sed -i 's,using gcc ;,using gcc : sparc : /opt/crosssolaris/bin/sparc-sun-solaris2.10-g++ ;,' project-config.jam 

./b2 toolset=gcc-sparc target-os=solaris
The result
Performing configuration checks

    - 32-bit                   : yes
    - arm                      : no
    - mips1                    : no
    - power                    : no
    - sparc                    : yes

Building the Boost C++ Libraries.


    - symlinks supported       : yes
    - zlib                     : yes
    - zlib                     : yes

Component configuration:

    - atomic                   : not building
    - chrono                   : not building
    - container                : not building
    - context                  : not building
    - coroutine                : not building
    - coroutine2               : not building
    - date_time                : not building
    - exception                : not building
    - filesystem               : not building
    - graph                    : not building
    - graph_parallel           : not building
    - iostreams                : building
    - locale                   : not building
    - log                      : not building
    - math                     : not building
    - mpi                      : not building
    - program_options          : not building
    - python                   : not building
    - random                   : not building
    - regex                    : not building
    - serialization            : not building
    - signals                  : not building
    - system                   : not building
    - test                     : not building
    - thread                   : not building
    - timer                    : not building
    - wave                     : not building

...patience...
...found 768 targets...
...updating 28 targets...
common.mkdir stage
common.mkdir stage/lib
common.mkdir bin.v2/libs
common.mkdir bin.v2/libs/iostreams
common.mkdir bin.v2/libs/iostreams/build
common.mkdir bin.v2/libs/iostreams/build/gcc-sparc
common.mkdir bin.v2/libs/iostreams/build/gcc-sparc/release
common.mkdir bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris
common.mkdir bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/file_descriptor.o
/tmp/cc794ayD.s: Assembler messages:
/tmp/cc794ayD.s:1152: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/cc794ayD.s:1152: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:1896: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:1896: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:1927: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:1927: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:4526: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:4526: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:4558: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:4558: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5235: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5235: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5274: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5274: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5444: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5444: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5483: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5483: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5653: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5653: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5692: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5692: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5862: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5862: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:5901: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:5901: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:6069: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:6069: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc794ayD.s:6101: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc794ayD.s:6101: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)

    "/opt/crosssolaris/bin/sparc-sun-solaris2.10-g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -mcpu=v7 -pthreads -fPIC -m32  -DBOOST_ALL_NO_LIB=1 -DBOOST_IOSTREAMS_DYN_LINK=1 -DBOOST_IOSTREAMS_USE_DEPRECATED -DNDEBUG  -I"." -c -o "bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/file_descriptor.o" "libs/iostreams/src/file_descriptor.cpp"

...failed gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/file_descriptor.o...
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/mapped_file.o
/tmp/ccWae5Mg.s: Assembler messages:
/tmp/ccWae5Mg.s:1648: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/ccWae5Mg.s:1648: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccWae5Mg.s:2758: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccWae5Mg.s:2758: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccWae5Mg.s:2789: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccWae5Mg.s:2789: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccWae5Mg.s:4852: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccWae5Mg.s:4852: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccWae5Mg.s:4884: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccWae5Mg.s:4884: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccWae5Mg.s:5039: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccWae5Mg.s:5039: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccWae5Mg.s:5071: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccWae5Mg.s:5071: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)

    "/opt/crosssolaris/bin/sparc-sun-solaris2.10-g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -mcpu=v7 -pthreads -fPIC -m32  -DBOOST_ALL_NO_LIB=1 -DBOOST_IOSTREAMS_DYN_LINK=1 -DBOOST_IOSTREAMS_USE_DEPRECATED -DNDEBUG  -I"." -c -o "bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/mapped_file.o" "libs/iostreams/src/mapped_file.cpp"

...failed gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/mapped_file.o...
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/bzip2.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/gzip.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi/zlib.o
...skipped <pbin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi>libboost_iostreams.so.1.59.0 for lack of <pbin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi>file_descriptor.o...
...skipped <pstage/lib>libboost_iostreams.so.1.59.0 for lack of <pbin.v2/libs/iostreams/build/gcc-sparc/release/target-os-solaris/threading-multi>libboost_iostreams.so.1.59.0...
...skipped <pstage/lib>libboost_iostreams.so for lack of <pstage/lib>libboost_iostreams.so.1.59.0...
common.mkdir bin.v2/libs/iostreams/build/gcc-sparc/release/link-static
common.mkdir bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris
common.mkdir bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/file_descriptor.o
/tmp/cc75PcHu.s: Assembler messages:
/tmp/cc75PcHu.s:1057: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/cc75PcHu.s:1057: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:1301: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/cc75PcHu.s:1301: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:1332: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/cc75PcHu.s:1332: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:2108: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:2108: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:2145: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:2145: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:6555: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:6555: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:6592: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:6592: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:6739: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:6739: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:6884: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:6884: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:7349: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:7349: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:7493: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:7493: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:7958: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:7958: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8026: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8026: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8206: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8206: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8277: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8277: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8455: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8455: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8492: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8492: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8627: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8627: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8695: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8695: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8875: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8875: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:8943: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:8943: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:9123: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:9123: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:9194: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:9194: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:9374: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:9374: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:9445: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:9445: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:9625: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:9625: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:9758: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:9758: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:10187: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:10187: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:10327: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:10327: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:10756: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:10756: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:10897: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:10897: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:11326: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:11326: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/cc75PcHu.s:11460: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/cc75PcHu.s:11460: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)

    "/opt/crosssolaris/bin/sparc-sun-solaris2.10-g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -mcpu=v7 -pthreads -m32  -DBOOST_ALL_NO_LIB=1 -DBOOST_IOSTREAMS_USE_DEPRECATED -DNDEBUG  -I"." -c -o "bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/file_descriptor.o" "libs/iostreams/src/file_descriptor.cpp"

...failed gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/file_descriptor.o...
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/mapped_file.o
/tmp/ccfD3w4Y.s: Assembler messages:
/tmp/ccfD3w4Y.s:1692: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/ccfD3w4Y.s:1692: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:1847: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/ccfD3w4Y.s:1847: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:1878: Error: Architecture mismatch on "cas [%g4],%g3,%g1".
/tmp/ccfD3w4Y.s:1878: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:4451: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccfD3w4Y.s:4451: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:4518: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccfD3w4Y.s:4518: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:7007: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccfD3w4Y.s:7007: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:7038: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccfD3w4Y.s:7038: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:7397: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccfD3w4Y.s:7397: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)
/tmp/ccfD3w4Y.s:7428: Error: Architecture mismatch on "cas [%g3],%g2,%g1".
/tmp/ccfD3w4Y.s:7428: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.)

    "/opt/crosssolaris/bin/sparc-sun-solaris2.10-g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -mcpu=v7 -pthreads -m32  -DBOOST_ALL_NO_LIB=1 -DBOOST_IOSTREAMS_USE_DEPRECATED -DNDEBUG  -I"." -c -o "bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/mapped_file.o" "libs/iostreams/src/mapped_file.cpp"

...failed gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/mapped_file.o...
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/bzip2.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/gzip.o
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/zlib.o
...skipped <pbin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi>libboost_iostreams.a(clean) for lack of <pbin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi>file_descriptor.o...
...skipped <pbin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi>libboost_iostreams.a for lack of <pbin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi>file_descriptor.o...
...skipped <pstage/lib>libboost_iostreams.a for lack of <pbin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi>libboost_iostreams.a...
...failed updating 4 targets...
...skipped 6 targets...
...updated 18 targets...

It seems that these errors (Error: Architecture mismatch on "cas [%g4],%g3,%g1".) occur because sparc-sun-solaris2.10-g++ compiles with the -mcpu=v7 flag.

If I run sparc-sun-solaris2.10-g++ without -mcpu=v7, for example:

"/opt/crosssolaris/bin/sparc-sun-solaris2.10-g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthreads -m32 -DBOOST_ALL_NO_LIB=1 -DBOOST_IOST REAMS_USE_DEPRECATED -DNDEBUG -I"." -c -o "bin.v2/libs/iostreams/build/gcc-sparc/release/link-static/target-os-solaris/threading-multi/file_descriptor.o" "libs/iostreams/src/file_descriptor.cpp"

, compilation is successful

Is there a way to exclude -mcpu=v7 flag from compilation? Or some other way to solve the problem?


Solution

  • Per the GCC SPARC documentation:

    These ‘-m’ options are supported in addition to the above on SPARC-V9 processors in 64-bit environments:

    -m32

    -m64

    Generate code for a 32-bit or 64-bit environment. The 32-bit environment sets int, long and pointer to 32 bits. The 64-bit environment sets int to 32 bits and long and pointer to 64 bits.

    -mcmodel=which

    . . .

    -m32 implies a 32-bit build on a 64-bit SPARC v9 CPU.

    Which means using the -m32 option will cause GCC to emit cas instructions and likely others that exist in the SPARCv9 and later instruction sets, but that don't exist in the SPARC v7 instruction set.

    See https://lists.boost.org/boost-build/2015/08/28211.php for a similar situation.

    The fix there was to pass instruction-set=v9 on the command line.