Use of __typeof__ in Solaris Studio 12.4

Solaris Studio 12.3 had a __typeof__ operator similar to decltype in C++11.  This is available in a portable wrapper using the Boost macro BOOST_TYPEOF_TPL.  It looks like the Solaris Studio team contributed the modification to Boost which added this in ticket 5745.
Now Solaris Studio 12.4 has a C++11 mode which supports decltype.  However, is __typeof__ still supposed to work in Solaris Studio 12.4's C++03 mode?  It doesn't seem to work as well as it used to.
The following program deduces the return type of operator() using __typeof__:
#include <boost/typeof/typeof.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <iostream>
#include <typeinfo>
// Helper to deduce the result type from a member function pointer.
template<typename T>
struct member_function_result_type
template<typename T, typename R, typename A1>
struct member_function_result_type<R (T::*)(A1) const>
    typedef typename boost::remove_reference<R>::type type;
template<typename T>
struct function_result_type
    typedef BOOST_TYPEOF_TPL(&T::operator()) F;
    typedef typename member_function_result_type<F>::type type;
template<typename R, typename A>
struct function_result_type<R (*)(A)>
    typedef typename boost::remove_reference<R>::type type;
struct my_functor
    float operator()(float numerator) const
        return numerator / 2.0f;
int main(int, char **)
    typedef typename function_result_type<my_functor>::type my_type;
    my_functor f;
    my_type ret = f(5.0f);
    if (typeid(my_type) == typeid(float))
        std::cout << "As expected " << ret << std::endl;
    else
        std::cout << "Oh dear " << ret << std::endl;
    return 0;
If you build this with Solaris Studio 12.3 as follows:
CC -m64 -I/usr/local/include/boost-1_54 main.cc
then it compiles and running a.out shows the return type of float has been correctly deduced.
However, with Solaris Studio 12.4 the same command:
CC -m64 -I/usr/local/include/boost-1_54 main.cc
results in:
"main.cc", line 23: Error: Unexpected type name "F" encountered.
"main.cc", line 42: Warning: "typename" must be used within a template.
1 Error(s) and 1 Warning(s) detected.
Now, obviously Solaris Studio 12.4 has a C++11 mode and it is possible to get this program to work by changing BOOST_TYPEOF_TPL to decltype and building with:
CC -std=c++11 -m64 -I/usr/local/include/boost-1_54 main.cc
But Solaris Studio 12.4's C++11 mode has other problems, so is there any way to somehow get a working __typeof__ or equivalent in Solaris Studio 12.4's C++03 mode?
(In case it makes any difference this is on Solaris 10 x86.)

I couldn't see that any of the items listed in the "Enforcement of C++ rules" section of the documentation would affect this program.
Here's a cut down version of the test program that doesn't use Boost:
#include <iostream>
#include <typeinfo>
// Helper to deduce the result type from a member function pointer.
template<typename T>
struct member_function_result_type
template<typename T, typename R, typename A1>
struct member_function_result_type<R (T::*)(A1) const>
    typedef R type;
template<typename T>
struct function_result_type
    typedef __typeof__(&T::operator()) F;
    typedef typename member_function_result_type<F>::type type;
template<typename R, typename A>
struct function_result_type<R (*)(A)>
    typedef R type;
struct my_functor
    float operator()(float numerator) const
        return numerator / 2.0f;
int main(int, char **)
    typedef function_result_type<my_functor>::type my_type;
    my_functor f;
    my_type ret = f(5.0f);
    if (typeid(my_type) == typeid(float))
        std::cout << "As expected " << ret << std::endl;
    return 0;
Interestingly this doesn't compile with either Solaris Studio 12.3 or Solaris Studio 12.4, but each gives different errors:
Solaris Studio 12.3:
CC -m64 main.cc
>> Assertion:  unexpected type_builder::visit_unspec (../lnk/v2mangler.cc, line 1636)
    while processing main.cc at line 39.
Solaris Studio 12.4:
CC -m64 main.cc
"main.cc", line 20: Error: Unexpected type name "F" encountered.
1 Error(s) detected.
So Solaris Studio 12.4 is basically failing in the same way as the original test program that used the Boost wrappers.  Solaris Studio 12.3 is failing with an assertion error that doesn't occur when the Boost wrappers are used.
It turns out that __typeof__ was only used in one place in our codebase (wrapped by Boost), so I've just removed it and implemented that code in a different way.  So this isn't blocking upgrade of Solaris Studio, and we don't even have __typeof__ in our codebase any more, but I just thought you might be interested to have this program as a test case for future development.
It works fine with clang++ in C++03 mode on Mac OS X so I doubt the problem is caused by the source code not conforming to standard:
clang++ main.cc
./a.out
As expected 2.5
This case may be particularly tricky for a compiler to handle due to __typeof__ being applied to a pointer to a const member function.

Similar Messages

  • Where is the performance analyzer in Solaris Studio?

    I have Oracle Solaris Studio 12.2 linux tar version. I have searched for the performance analyzer integrated with the IDE as in this link http://webcast-west.sun.com/interactive/09D02151/index.html that explains how to use openmp-3 on Solaris Studio but have not found any. I have though find the independent executable analyzer in the bin directory and I can only run it separately.
    Is there a way to run the performance analyzer in Solaris Studio?
    Thank you.

    In Oracle Solaris Studio 12.2, performance analyzer is not available via the IDE, but as an independent standalone commands/GUI (e.g. solstudio12.2/bin/analyzer). Here is where you can find more information:
    http://www.oracle.com/technetwork/server-storage/solarisstudio/documentation/analyzing-jsp-137179.html
    /kso

  • Error compiling certain uses of std::tuple in Solaris Studio 12.4 beta July refresh

    Whilst attempting to compile Boost 1.54 using the Solaris Studio 12.4 beta July refresh with -std=c++11 I get an error building libs/regex/src/cregex.cpp that looks like it might be due to a problem with the compiler.  (clang++ on Mac OS X and g++ on Linux can certainly build the same file without problems - I can post more details about them if you think this is a problem in the Boost code rather than the compiler.)
    The error from Solaris Studio is:
    Error: Could not find a match for std::_Tuple_impl<0, int&&>::_Tuple_impl(std::tuple<int&&>, int) needed in std::tuple<int&&>::tuple<int, void>(int&&).
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: While instantiating "std::tuple<int&&>::tuple<int, void>(int&&)".
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: Instantiated from std::forward_as_tuple<int>(int&&).
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/bits/stl_map.h", line 485:     Where: Instantiated from non-template code.
    1 Error(s) detected.
    To reproduce this you can download the pre-processed source code from http://pastebin.com/jtsx1k79 and paste it into a file called cregex.pre.cpp.  Then run:
    CC -std=c++11 -mt -m64 -c -o cregex.o cregex.pre.cpp
    to get the error I saw.
    In case it's relevant, I'm working on Oracle Solaris 10 1/13 s10x_u11wos_24a X86.

    This looks very much like a recent bug with std::map introduced with the change to g++ 4.8 headers in July Beta:
      19159587 C++11: errors on a simple <map> usage
    It has been reported on forums - +d flag can cause C++ compilation failure in 12.4 beta refresh
    This bug will be fixed in a final release.
    Unfortunately there is no workaround for this problem.
    regards,
      Fedor.

  • Help compiling R using Solaris Studio

    I am trying to compile R 2.14 using the Solaris Studio. The configure command works, with some tweaking ;-), but it I get a lot of "symbols not found" error messages (see below).
    Has anyone been able to compile R with the Solaris Studio? Which libraries or files am I missing and how should I specify them.
    thanks in advance!
    Roger
    cc -m64 -xopenmp -L/opt/sunstudio12.1/lib/amd64 -o R.bin Rmain.o libR.a -library=sunperf\
    -R/opt/solstudio12.2/lib/amd64 -R/usr/local/bin/R-2.14.0/lib64 -R/user/openwin/lib -lfai -lfui -lfsu -lsunquad -lsunmath -lmtsk -lm -lnsl\
    -lsocket -lrt -ldl -lm -licuuc -licui18n
    cc: Warning: Optimizer level changed from 0 to 3 to support parallelized code.
    Undefined               first referenced
    symbol                in file
    cg_ libR.a(registration.o)
    ch_ libR.a(registration.o)
    rg_ libR.a(registration.o)
    rs_ libR.a(registration.o)
    Rz_uncompress libR.a(connections.o)
    bincount libR.a(registration.o)
    Rz_inflate libR.a(connections.o)
    pnbinom_mu libR.a(arithmetic.o)
    qnbinom_mu libR.a(arithmetic.o)
    rnbinom_mu libR.a(random.o)
    dnbinom_mu libR.a(arithmetic.o)
    Rf_df libR.a(arithmetic.o)
    Rf_dt libR.a(arithmetic.o)
    Rf_pf libR.a(arithmetic.o)
    Rf_pt libR.a(arithmetic.o)
    Rf_qf libR.a(arithmetic.o)
    Rf_qt libR.a(arithmetic.o)
    Rf_rf libR.a(random.o)
    Rf_rt libR.a(random.o)
    R_ProcessEvents libR.a(errors.o)
    Rz_crc32 libR.a(connections.o)
    chol_ libR.a(registration.o)
    do_syssleep libR.a(names.o)
    R_zeroin2 libR.a(optimize.o)
    R_EditFiles libR.a(platform.o)
    R_getProcTime libR.a(memory.o)
    lzma_lzma_preset libR.a(connections.o)
    lzma_end libR.a(connections.o)
    R_ExpandFileName libR.a(platform.o)
    R_OpenInitFile libR.a(main.o)
    R_getClockIncrement libR.a(memory.o)
    BZ2_bzDecompress libR.a(dounzip.o)
    R_ReadConsole libR.a(main.o)
    Rf_initialize_R Rmain.o
    call_dqags libR.a(registration.o)
    call_dqagi libR.a(registration.o)
    Rf_lchoose libR.a(arithmetic.o)
    R_ChooseFile libR.a(platform.o)
    Rz_deflateInit2_ libR.a(connections.o)
    lzma_code libR.a(connections.o)
    N01_kind libR.a(RNG.o)
    do_machine libR.a(names.o)
    R_max_col libR.a(registration.o)
    R_ClearerrConsole libR.a(scan.o)
    do_dataviewer libR.a(names.o)
    Rf_InitEd libR.a(main.o)
    pcre_maketables libR.a(grep.o)
    tre_regaparams_default libR.a(agrep.o)
    libintl_gettext libR.a(main.o)
    libintl_textdomain libR.a(main.o)
    lzma_stream_decoder libR.a(connections.o)
    R_Busy libR.a(main.o)
    Rf_dnf libR.a(arithmetic.o)
    Rf_dnt libR.a(arithmetic.o)
    Rf_pnf libR.a(arithmetic.o)
    Rf_pnt libR.a(arithmetic.o)
    Rf_qnf libR.a(arithmetic.o)
    Rf_qnt libR.a(arithmetic.o)
    BZ2_bzRead libR.a(connections.o)
    Rf_choose libR.a(arithmetic.o)
    Brent_fmin libR.a(optimize.o)
    BZ2_bzDecompressEnd libR.a(dounzip.o)
    Rf_dbinom libR.a(arithmetic.o)
    Rf_dchisq libR.a(arithmetic.o)
    R_cumsum libR.a(registration.o)
    Rf_dgamma libR.a(arithmetic.o)
    Rf_dhyper libR.a(arithmetic.o)
    Rf_dlogis libR.a(arithmetic.o)
    Rf_dlnorm libR.a(arithmetic.o)
    Rf_dnbeta libR.a(arithmetic.o)
    Rf_dnorm4 libR.a(arithmetic.o)
    fft_factor libR.a(fourier.o)
    lzma_stream_encoder libR.a(connections.o)
    Rf_fround libR.a(arithmetic.o)
    Rf_ftrunc libR.a(arithmetic.o)
    tre_regawexec libR.a(agrep.o)
    Rz_compress libR.a(connections.o)
    do_addhistory libR.a(names.o)
    Rf_pbinom libR.a(arithmetic.o)
    Rf_pchisq libR.a(arithmetic.o)
    Rf_pgamma libR.a(arithmetic.o)
    Rf_phyper libR.a(arithmetic.o)
    Rf_plogis libR.a(arithmetic.o)
    Rf_plnorm libR.a(arithmetic.o)
    Rf_pnbeta libR.a(arithmetic.o)
    Rf_pnorm5 libR.a(arithmetic.o)
    Rf_qbinom libR.a(arithmetic.o)
    R_pretty libR.a(registration.o)
    R_cpolyroot libR.a(complex.o)
    Rf_qchisq libR.a(arithmetic.o)
    Rf_ptukey libR.a(arithmetic.o)
    Rf_qgamma libR.a(arithmetic.o)
    Rf_qhyper libR.a(arithmetic.o)
    Rf_qlogis libR.a(arithmetic.o)
    Rf_qlnorm libR.a(arithmetic.o)
    Rf_qnbeta libR.a(arithmetic.o)
    Rf_qnorm5 libR.a(arithmetic.o)
    bakslv libR.a(registration.o)
    Rf_rbinom libR.a(random.o)
    Rf_rchisq libR.a(random.o)
    Rf_qtukey libR.a(arithmetic.o)
    Rf_rgamma libR.a(random.o)
    Rf_rhyper libR.a(random.o)
    Rf_rlogis libR.a(random.o)
    Rf_rlnorm libR.a(random.o)
    R_rowsum libR.a(registration.o)
    str_signif libR.a(registration.o)
    Rf_pcauchy libR.a(arithmetic.o)
    dchdc_ libR.a(registration.o)
    do_system libR.a(names.o)
    do_X11 libR.a(names.o)
    dpbfa_ libR.a(registration.o)
    dpbsl_ libR.a(registration.o)
    dpoco_ libR.a(registration.o)
    dpodi_ libR.a(registration.o)
    dpofa_ libR.a(registration.o)
    dposl_ libR.a(registration.o)
    dqrcf_ libR.a(registration.o)
    dqrdc_ libR.a(registration.o)
    dqrls_ libR.a(registration.o)
    dqrqy_ libR.a(registration.o)
    dqrsl_ libR.a(registration.o)
    dqrxb_ libR.a(registration.o)
    dsvdc_ libR.a(registration.o)
    dtrco_ libR.a(registration.o)
    dtrsl_ libR.a(registration.o)
    wilcox_free libR.a(registration.o)
    fdhess libR.a(optimize.o)
    R_ShowFiles libR.a(platform.o)
    BZ2_bzReadGetUnused libR.a(connections.o)
    tre_regaexecb libR.a(agrep.o)
    BZ2_bzReadOpen libR.a(connections.o)
    R_zeroin libR.a(optimize.o)
    pcrevalid_utf8 libR.a(util.o)
    machar libR.a(platform.o)
    Rf_pnchisq libR.a(arithmetic.o)
    Rf_pnbinom libR.a(arithmetic.o)
    lzma_crc64 libR.a(util.o)
    optif9 libR.a(optimize.o)
    rcont2 libR.a(random.o)
    R_pretty0 libR.a(engine.o)
    setulb libR.a(optim.o)
    Rf_qcauchy libR.a(arithmetic.o)
    R_tabulate libR.a(registration.o)
    tre_regncompb libR.a(grep.o)
    tre_regnexecb libR.a(grep.o)
    Rf_pwilcox libR.a(arithmetic.o)
    libintl_dngettext libR.a(errors.o)
    find_interv_vec libR.a(registration.o)
    Rf_qnchisq libR.a(arithmetic.o)
    Rf_qnbinom libR.a(arithmetic.o)
    Rf_bessel_i_ex libR.a(arithmetic.o)
    Rf_bessel_j_ex libR.a(arithmetic.o)
    Rf_bessel_y_ex libR.a(arithmetic.o)
    Rf_bessel_k_ex libR.a(arithmetic.o)
    Rz_inflateEnd libR.a(connections.o)
    Rz_deflateEnd libR.a(connections.o)
    Rf_rcauchy libR.a(random.o)
    Rf_trigamma libR.a(arithmetic.o)
    do_saveplot libR.a(names.o)
    pcre_free libR.a(grep.o)
    pcre_exec libR.a(grep.o)
    Rf_beta libR.a(arithmetic.o)
    Rf_dexp libR.a(arithmetic.o)
    tre_regcomp libR.a(platform.o)
    tre_regexec libR.a(platform.o)
    tre_regfree libR.a(platform.o)
    Rf_pexp libR.a(arithmetic.o)
    Rf_qexp libR.a(arithmetic.o)
    Rf_rexp libR.a(random.o)
    Rf_sign libR.a(arithmetic.o)
    Rf_qwilcox libR.a(arithmetic.o)
    R_ReadClipboard libR.a(connections.o)
    BZ2_bzWriteOpen libR.a(connections.o)
    bincode libR.a(registration.o)
    R_CleanTempDir libR.a(main.o)
    R_access_X11 libR.a(platform.o)
    norm_rand libR.a(optim.o)
    Rf_rnchisq libR.a(random.o)
    Rf_rnbinom libR.a(random.o)
    R_running_as_main_program Rmain.o
    Rf_psigamma libR.a(arithmetic.o)
    ch2inv_ libR.a(registration.o)
    BZ2_bzWrite libR.a(connections.o)
    BZ2_bzBuffToBuffDecompress libR.a(connections.o)
    Rz_inflateInit2_ libR.a(connections.o)
    Rf_rwilcox libR.a(random.o)
    R_CleanUp libR.a(main.o)
    Rf_dsignrank libR.a(arithmetic.o)
    Rf_psignrank libR.a(arithmetic.o)
    Rf_rsignrank libR.a(random.o)
    Rf_qsignrank libR.a(arithmetic.o)
    BZ2_bzDecompressInit libR.a(dounzip.o)
    Rf_dcauchy libR.a(arithmetic.o)
    Rz_deflate libR.a(connections.o)
    R_Suicide libR.a(main.o)
    libintl_bindtextdomain libR.a(main.o)
    stemleaf libR.a(registration.o)
    Rf_digamma libR.a(arithmetic.o)
    do_sysinfo libR.a(names.o)
    Rf_dnchisq libR.a(arithmetic.o)
    Rf_dnbinom libR.a(arithmetic.o)
    do_edit libR.a(names.o)
    pcre_study libR.a(grep.o)
    R_ShowMessage libR.a(startup.o)
    dqrdc2_ libR.a(registration.o)
    dqrqty_ libR.a(registration.o)
    dqrrsd_ libR.a(registration.o)
    Rf_InitFunctionHashing libR.a(Rdynload.o)
    R_FlushConsole libR.a(plot.o)
    lzma_alone_decoder libR.a(connections.o)
    Rf_dwilcox libR.a(arithmetic.o)
    rmultinom libR.a(random.o)
    tre_regwcomp libR.a(agrep.o)
    tre_regwexec libR.a(grep.o)
    Rf_dbeta libR.a(arithmetic.o)
    Rf_dgeom libR.a(arithmetic.o)
    Rf_dpois libR.a(arithmetic.o)
    Rf_dunif libR.a(arithmetic.o)
    Rf_fmin2 libR.a(plot3d.o)
    Rf_fmax2 libR.a(relop.o)
    Rf_fprec libR.a(arithmetic.o)
    Rf_imax2 libR.a(printutils.o)
    Rf_lbeta libR.a(arithmetic.o)
    tre_regcompb libR.a(agrep.o)
    do_savehistory libR.a(names.o)
    tre_regerror libR.a(agrep.o)
    tre_regexecb libR.a(dcf.o)
    Rf_pbeta libR.a(arithmetic.o)
    Rf_pgeom libR.a(arithmetic.o)
    Rf_ppois libR.a(arithmetic.o)
    Rf_qbeta libR.a(arithmetic.o)
    Rf_punif libR.a(arithmetic.o)
    Rf_qgeom libR.a(arithmetic.o)
    Rf_qpois libR.a(arithmetic.o)
    Rf_rbeta libR.a(random.o)
    Rf_qunif libR.a(arithmetic.o)
    Rf_rgeom libR.a(random.o)
    Rf_rnorm libR.a(random.o)
    Rf_rpois libR.a(random.o)
    Rf_runif libR.a(random.o)
    do_loadhistory libR.a(names.o)
    tre_regaexec libR.a(agrep.o)
    R_WriteConsoleEx libR.a(printutils.o)
    Rz_inflateReset libR.a(connections.o)
    do_dataentry libR.a(names.o)
    lzma_raw_encoder libR.a(connections.o)
    BZ2_bzBuffToBuffCompress libR.a(connections.o)
    Rf_lgammafn libR.a(random.o)
    BM_norm_keep libR.a(RNG.o)
    Rf_gammafn libR.a(arithmetic.o)
    libintl_dgettext libR.a(main.o)
    libintl_ngettext libR.a(printarray.o)
    fft_work libR.a(fourier.o)
    lzma_raw_decoder libR.a(connections.o)
    Rf_pweibull libR.a(arithmetic.o)
    Rf_qweibull libR.a(arithmetic.o)
    Rf_rweibull libR.a(random.o)
    Rf_dweibull libR.a(arithmetic.o)
    pcre_fullinfo libR.a(grep.o)
    R_WriteConsole libR.a(printutils.o)
    R_ResetConsole libR.a(errors.o)
    BZ2_bzWriteClose libR.a(connections.o)
    signrank_free libR.a(registration.o)
    pcre_compile libR.a(grep.o)
    BZ2_bzReadClose libR.a(connections.o)
    ld: fatal: symbol referencing errors. No output written to R.bin

    R 2.14.2 built just fine on S11 with Studio 12.3. I had to have GNU iconv installed and then I had to build without readline as the native one has some problems/features WRT linking to n/curses that I was not in the mood to play with.
    ./configure \
    --prefix=%{_prefix} \
    --without-readline \
    --enable-R-shlib                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • OpenGL via Solaris Studio

    Hello all!
    Present: Oracle Solaris 10 9/10 x86 and Solaris Studio 12.2
    Whether there is at whom skeleton for С\С ++ OpenGL application.
    I can not find the decision - how to begin

    I think there is no sample project for C/C++ with OpenGL. You are welcome to file RFE for this issue.
    If you have a C/C++ application that uses OpenGL, you can create a Project with Existing Sources.
    Thanks.
    Nik

  • Solaris Studio 12.4 ccfe signal 11 with boost::unordered_set in C  11 mode

    Using Solaris Studio 12.4 on Solaris 10 update 10 x86, the following program crashes ccfe:
    #include <boost/unordered_set.hpp>
    #include <string>
    int main(int, char **)
        boost::unordered_set<std::string> strSet;
        std::string str("test");
        strSet.insert(str);
        return 0;
    Assuming the code is saved to main.cc, build it in C++11 mode using:
    CC -v -std=c++11 -m64 -I/usr/local/include/boost-1_54 main.cc
    The output is:
    ### CC: Note: NLSPATH = /opt/solarisstudio12.4/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/solarisstudio12.4/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
    ###     command line files and options (expanded):
    ### -v -std=c++11 -m64 -I/usr/local/include/boost-1_54 main.cc
    /opt/solarisstudio12.4/lib/compilers/ccfe -xarch=amd64 -std=c++11 -D__SunOS_5_10 -D__SUNPRO_CC=0x5130 -D__unix -D__SVR4 -D__sun -D__SunOS "-D__builtin_expect(e,x)=e" -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D_LP64 -D__LP64__ -D__BUILTIN_VA_STRUCT -Dunix -Dsun -D__SUN_PREFETCH -D__SUNPRO_CC_COMPAT='G' -include /opt/solarisstudio12.4/lib/compilers/include/CC/gnu/builtins.h -include /opt/solarisstudio12.4/lib/compilers/include/CC/gnu/builtins-def.h -I/usr/local/include/boost-1_54 -I-xbuiltin -I/opt/solarisstudio12.4/lib/compilers/include/CC/gnu -I/opt/solarisstudio12.4/lib/compilers/CC-gcc/include/c++/4.8.2/ -I/opt/solarisstudio12.4/lib/compilers/CC-gcc/include/c++/4.8.2//backward -I/opt/solarisstudio12.4/lib/compilers/CC-gcc/include/c++/4.8.2/i386-sun-solaris2.10/amd64/ -I/opt/solarisstudio12.4/lib/compilers/include/cc -I/usr/include -I/opt/solarisstudio12.4/lib/compilers/CC-gcc/lib/gcc/i386-sun-solaris2.10/4.8.2/include// -ptf /tmp/ccfe.1422033660.29374.03.%1.%2 -ptx /opt/solarisstudio12.4/bin/CC -ptk "-v -std=c++11 -m64 -I/usr/local/include/boost-1_54 " -compat=g -xdebuginfo=%none -xdbggen=dwarf+usedonly+incl -xF=%none -xbuiltin=%none -xldscope=global -xivdep=loop -O0 -xarrayloc main.cc -o /tmp/ccfe.1422033660.29374.01.ir 2> /tmp/ccfe.1422033660.29374.02.err
    /opt/solarisstudio12.4/lib/compilers/stdlibfilt -stderr < /tmp/ccfe.1422033660.29374.02.err
    >> Signal 11:
        while processing main.cc at line 0.
    rm /tmp/ccfe.1422033660.29374.02.err
    rm /tmp/ccfe.1422033660.29374.01.ir
    I know Boost 1.54 is not the most recent version, but the only changes to unordered_set.hpp between 1.54 and the current master branch in Boost's Git repository are Visual Studio 2013 workarounds, so I strongly suspect the same problem would occur with Solaris Studio 12.4 and more recent versions of Boost.
    This problem can be avoided by using std::unordered_set instead of boost::unordered_set.  However, since the compiler actually suffers a SEGV rather than giving a nice error message I thought I'd report this in case it's a sign of a problem in the compiler that might occur under other circumstances too.

    Thanks for the help.  Yes, sorry, I should have made clear that this is after trying to use Boost in C++11 mode.  I agree that the problem doesn't occur when using Solaris Studio in C++11 mode but Boost configured not to use any C++11 features.
    I made quite a few edits to the Boost code, including the ones Steve posted in this thread.  The edit that causes this problem to occur is the one to boost/config/compiler/sunpro_cc.hpp that removes all the BOOST_NO_CXX11_* macros.
    It sounds like I should just hold off trying to use Boost in C++11 mode until the next version of Solaris Studio is out.
    The pstack from the ccfe core dump is:
    core 'core.1503' of 1503:       /opt/solarisstudio12.4/lib/compilers/ccfe -xarch=amd64 -std=c++11 -D__
    ffff0000 ???????? (8041218, 8, fcf58e0, 0)
    082b7713 __1cPtemp_name_substKsubstitute6MrknQfull_syntax_name__1_ (8041260, 8041180) + 163
    082be63d __1cKexpr_substKvisit_name6MpnJname_expr__v_ (80413c0, ad65da8, 8041348, 8275d73) + fd
    082bc775 __1cKexpr_substKsubstitute6MpknEexpr__p1_ (80413c0, f2cab18, 80413a8) + 35
    082b858b __1cPtemp_name_substQsubst_single_arg6MnPtemplate_actual__k1_ (80415d0, 8041b10, f2cab18, 103, 8041570, 0) + 2fb
    082b8e10 __1cPtemp_name_substUsubstitute_temp_args6MrknbBtemplate_actuals_collection_pknXtemplate_parameter_list__1_ (8041890, 8041b10) + 150
    082ba050 __1cPtemp_name_substPvisit_temp_args6MrknbJsyntax_name_with_template_arguments__v_ (8041b10, fc9dd80, 8041ac0, 8041964) + 30
    082ba2c8 __1cPtemp_name_substFvisit6MrknQsyntax_name_impl4eInSsyntax_name_sort_t____v_ (8041b10, fc9dd80, fcf5610, 0) + 18
    082b76d1 __1cPtemp_name_substKsubstitute6MrknQfull_syntax_name__1_ (8041bf0, 8041b10) + 121
    082b526b __1cPtemp_type_substUvisit_name_dependent6MpnEtype_pnTname_dependent_type__v_ (8041eb0, f2e1aa4, f2e1a58, f2e21f0) + 5b
    082b3930 __1cPtemp_type_substTsubstitute_ret_type6MpnJfunc_type__pnEtype__ (8041eb0, f2e2178, 8041d08, 8041d60) + 30
    082b3c2c __1cPtemp_type_substKvisit_func6MpnEtype_pnJfunc_type__v_ (8041eb0, f2e21a0, f2e2178, f2e21f0) + 25c
    082ba941 __1cPtemp_type_substTexpand_in_func_type6MpnJfunc_type__2_ (8041eb0) + 31
    0816b754 __1cIfunc_symRnew_template_spec6kMrknbBtemplate_actuals_collection_rknIposition__pnDsym__ (f2e21f0) + c4
    082c941b __1cQtemplate_matcherIgen_func6M_pnIfunc_sym__ (8042050, ad62d58, ad65960, 0) + 59b
    0828af3f ???????? (80420f4, ad65940, 80421a0, 0, ad62c50, 0)
    0828b2c9 __1cNoverload_call6FpnJcall_expr_rknJsym_array_4brknbBtemplate_actuals_collection_nEtypeKtype_class_b_2_ (8042198, ad65940, 804219c, 80421a0, 0, ad62c50) + 99
    08204c38 ???????? (ad65940)
    082086ff __1cLtypify_call6FpnJcall_expr_I_pnEexpr__ (ad65940, 4, 0, fd33148) + 9bf
    081e36a5 __1cXtypify_dispatch_visitorKvisit_call6MpnJcall_expr__v_ (8042530, ad65940, 0, 0) + 15
    081e4529 __1cGtypify6FpnEexpr_I_1_ (ad65940, 4, 0, 0) + c9
    082b1e0a __1cJexpr_stmtOpass_thru_expr6MpnEexprHvisitor__v_ (ad659a0, 80425b0, 0, 83bb23e) + 1a
    081e3cd1 __1cXtypify_dispatch_visitorPvisit_statement6MpnOstatement_expr__v_ (8042660, ad62b28, 8042608, 83bbbe9) + 71
    081e4529 __1cGtypify6FpnEexpr_I_1_ (ad62b28, 0, 8759ec0, fc9b740) + c9
    08266956 __1cWstore_inline_func_body6FpnIfunc_sym_pnFscope_bb_pnEexpr__ (fd2fc80, fc9b740, 1, 1) + 426
    082700c8 __1cSinline_bookkeepingOprocess_inline6MpnIfunc_sym_pnJcall_expr_pnEexpr__6_ (8d61508) + 268
    08270542 __1cSinline_bookkeepingNexpand_inline6MpnJcall_expr_pnEexpr__4_ (8d61508, ad5ecf8, 87594a8, 0) + f2
    081e10e3 ???????? (ad5ecf8, 80005, 8043208, 85a44ab)
    081d673e __1cWbind2_dispatch_visitorKvisit_call6MpnJcall_expr__v_ (8043220, ad5ecf8, fd1e6b8, fcb9a40) + 9e
    081d7662 __1cHbind2erKbind2_body6FpnEexpr_I_2_ (ad5ecf8, 80005, 8043288, 0) + a2
    082a94e7 ???????? (ad5ecf8, 0, 0, 0)
    082aaaf3 __1cRstmt_bind_visitorKvisit_expr6MpnJexpr_stmt__v_ (8043350, ad5ed58, 80432f8, 804337c) + 93
    082a8f2f __1cRstmt_bind_visitorOstmt_list_bind6MpnJstatement__2_ (8043350, ad5ed58, 2211, 7fefefef) + 8f
    082b06b5 __1cRstmt_bind_visitorPvisit_statement6MpnOstatement_expr__v_ (8043350) + b5
    082a9294 __1cJstmt_bind6FpnOstatement_expr_b_v_ (ad5bef0) + b4
    081df9c6 ???????? (ad5bef0, 0, 8043428, 8272a37)
    081d6e18 __1cWbind2_dispatch_visitorPvisit_statement6MpnOstatement_expr__v_ (8043420, ad5bef0, 8043448, 8043494) + 98
    081d7662 __1cHbind2erKbind2_body6FpnEexpr_I_2_ (ad5bef0, 0, 8043488, 81710d5) + a2
    082726f0 __1cSinline_bookkeepingQfinish_expansion6MrnbDfunction_definition_interface_pnEexpr__4_ (8d61508, fd2b46c, ad5bef0, 0) + 160
    081e10f9 ???????? (ad4b210, 80005, 8043528, 82759da)
    081d673e __1cWbind2_dispatch_visitorKvisit_call6MpnJcall_expr__v_ (8043520, ad4b210, 0, fcb9a40) + 9e
    081d7662 __1cHbind2erKbind2_body6FpnEexpr_I_2_ (ad4b210, 80005, 8043578, ad55cc0) + a2
    082a94e7 ???????? (ad4b210, 0, 0, 0)
    082aaaf3 __1cRstmt_bind_visitorKvisit_expr6MpnJexpr_stmt__v_ (8043650, ad4b270, fd1e668, 874cef8) + 93
    082a8f2f __1cRstmt_bind_visitorOstmt_list_bind6MpnJstatement__2_ (8043650, ad4a7b0, 1, 7fefefef) + 8f
    082b06b5 __1cRstmt_bind_visitorPvisit_statement6MpnOstatement_expr__v_ (8043650) + b5
    082a9294 __1cJstmt_bind6FpnOstatement_expr_b_v_ (ad4a520) + b4
    081d6e18 __1cWbind2_dispatch_visitorPvisit_statement6MpnOstatement_expr__v_ (8043720, ad4a520, 8043748, 8043794) + 98
    081d7662 __1cHbind2erKbind2_body6FpnEexpr_I_2_ (ad4a520, 0, 8043788, 81710d5) + a2
    082726f0 __1cSinline_bookkeepingQfinish_expansion6MrnbDfunction_definition_interface_pnEexpr__4_ (8d61508, fc7b144, ad4a520, 0) + 160
    081e10f9 ???????? (ad035e8, 80005, fd1e368, 85a4400)
    081d673e __1cWbind2_dispatch_visitorKvisit_call6MpnJcall_expr__v_ (8043820, ad035e8, acffdb8, fcb9a40) + 9e
    081d7662 __1cHbind2erKbind2_body6FpnEexpr_I_2_ (ad035e8, 80005, 8043878, 0) + a2
    082a94e7 ???????? (ad035e8, 0, 0, 0)
    082aaaf3 __1cRstmt_bind_visitorKvisit_expr6MpnJexpr_stmt__v_ (80439c0, ad03648, ad03668, 8759ec0) + 93
    082a8f2f __1cRstmt_bind_visitorOstmt_list_bind6MpnJstatement__2_ (80439c0, acf9468, 0, 82d7323) + 8f
    082afb6b __1cRstmt_bind_visitorWvisit_function_variant6MpnNfunction_stmt_b_v_ (80439c0, ad04358, 1, 8043a30) + 46b
    082afe10 __1cRstmt_bind_visitorOvisit_function6MpnNfunction_stmt__v_ (80439c0, ad04358, ad04378, 8759ec0) + 40
    082a916f __1cUstmt_bind_and_expand6FpnJstatement__1_ (ad04358, 3, fc55f4b, 80443c4) + 11f
    08257545 __1cMfunc_contextJpostamble6MrnbDfunction_definition_interface_pnNfunction_stmt__v_ (871cc98) + d5
    082e879d __1cTimmediate_func_body6FpnIfunc_sym__v_ (fbd3840, fbd3390, 8044dd0, 821b71f) + 3fd
    08266428 __1cMparse_inline6FrnbDfunction_definition_interface__v_ (fbd385c, fbd38cc, 8044eb0, 95a38d4) + 188
    084db8c8 __1cLemit_inline6FpnIsym_list__v_ (fca5328, fca5328) + 2d8
    084d88f1 __1cQcompilation_unitFclean6M_b_ (8759310) + a1
    084dd507 __1cIfinalgen6F_v_ (8c3ffa8, 8759178, 8046eb8, 815db68, 1, 8c41eb8) + 67
    082f533b __1cGanalys6Fb_v_ (1, 8c41eb8, 8046eb8, 815d5d7) + db
    0815db68 __1cHtmcplus6Fri0bpnHoptions__nHsym_set__ (8046f00, 8046ef8, 8046efc, 1, 8c4ced8, 86417b1) + 2be8
    082e5943 main     (34, 8047360, 8047434) + 283
    08153f22 _start   (34, 8047514, 804753e, 804754b, 8047556, 8047565) + 72

  • Solaris Studio 12.3 demangle fatal internal error: information lost in character quoting

    Hello,
    I have run into a problem with the Solaris Studio 12.3 compiler when building one source file that makes use of the open source Eigen library.  The compilation fails with the error:
    demangle fatal internal error: information lost in character quoting
    CC: fbe failed for CSeasonalComponent.cc
    The full command that fails is:
    CC -c -o .objs/CSeasonalComponent.o -m64 -g3 -fsimple=1 -O4 -xbuiltin=%all -xlibmil -xlibmopt -xarch=sse3 -xchip=nehalem -nofstore -xalias_level=compatible -features=extensions -errtags +w -erroff=anonnotype,anonstruct,badargtype2w,hidef,notemsource,wbadasg -library=Crun -library=no%Cstd -KPIC  -mt -I/usr/local/stdcxx/include -I/usr/include -I/usr/local/include -DSOLARIS -D_POSIX_PTHREAD_SEMANTICS -D_RWSTD_NO_STRING_MUTEX -D_RWSTD_MINIMUM_STRING_CAPACITY=22 -D_RWSTD_NO_LIST_NODE_BUFFER -DBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS -DEIGEN_MPL2_ONLY -DEIGEN_DONT_USE_RESTRICT_KEYWORD -DNDEBUG -I/export/home/dave/source/local/include -I/usr/local/include/boost-1_54 CSeasonalComponent.cc
    The problem goes away if the -g3 flag is removed.  Replacing -g3 with -g0 does not help - the same fatal error occurs.  (Removing the -g0/-g3 options has the effect of not passing a -dbgfile option to the fbe program, and this appears to be what avoids the problem.)
    The information in this question is from a Solaris x86 machine, although the same "demangle fatal internal error: information lost in character quoting" also occurs on SPARC with the same source file and similar (although obviously not identical) compiler options.
    The result of running the CC command that fails with the -dryrun option added is this:
    ### CC: Note: NLSPATH = /opt/solarisstudio12.3/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/solarisstudio12.3/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
    ###     command line files and options (expanded):
    ### -dryrun -c -o.objs/CSeasonalComponent.o -m64 -g3 -fsimple=1 -O4 -xbuiltin=%all -xlibmil -xlibmopt -xarch=sse3 -xchip=nehalem -nofstore -xalias_level=compatible -features=extensions -errtags=yes +w -erroff=anonnotype,anonstruct,badargtype2w,hidef,notemsource,wbadasg -library=Crun -xcode=pic32 -mt=yes -I/usr/local/stdcxx/include -I/usr/include -I/usr/local/include -DSOLARIS -D_POSIX_PTHREAD_SEMANTICS -D_RWSTD_NO_STRING_MUTEX -D_RWSTD_MINIMUM_STRING_CAPACITY=22 -D_RWSTD_NO_LIST_NODE_BUFFER -DBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS -DEIGEN_MPL2_ONLY -DEIGEN_DONT_USE_RESTRICT_KEYWORD -DNDEBUG -I/export/home/dave/source/local/include -I/usr/local/include/boost-1_54 CSeasonalComponent.cc
    /opt/solarisstudio12.3/prod/bin/ccfe -xarch=amd64 -D__SunOS_5_10 -D__SUNPRO_CC=0x5120 -D__unix -D__SVR4 -D__sun -D__SunOS -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D_LP64 -D__LP64__ -D__BUILTIN_VA_STRUCT -Dunix -Dsun -D_REENTRANT -D__SUN_PREFETCH -D__SUNPRO_CC_COMPAT=5 -I/usr/local/stdcxx/include -I/usr/include -I/usr/local/include -I/export/home/dave/source/local/include -I/usr/local/include/boost-1_54 -I-xbuiltin -I/opt/solarisstudio12.3/prod/include/CC -I/opt/solarisstudio12.3/prod/include/cc -DSOLARIS -D_POSIX_PTHREAD_SEMANTICS -D_RWSTD_NO_STRING_MUTEX -D_RWSTD_MINIMUM_STRING_CAPACITY=22 -D_RWSTD_NO_LIST_NODE_BUFFER -DBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS -DEIGEN_MPL2_ONLY -DEIGEN_DONT_USE_RESTRICT_KEYWORD -DNDEBUG -ptf /tmp/ccfe.04.%1.%2 -features=extensions -ptx /opt/solarisstudio12.3/prod/bin/CC -ptk "-dryrun -c -m64 -g3 -fsimple=1 -O4 -xbuiltin=%all -xlibmil -xlibmopt -xarch=sse3 -xchip=nehalem -nofstore -xalias_level=compatible -features=extensions -errtags=yes +w -erroff=anonnotype,anonstruct,badargtype2w,hidef,notemsource,wbadasg -library=Crun -library=no%Cstd -xcode=pic32 -mt=yes -I/usr/local/stdcxx/include -I/usr/include -I/usr/local/include -DSOLARIS -D_POSIX_PTHREAD_SEMANTICS -D_RWSTD_NO_STRING_MUTEX -D_RWSTD_MINIMUM_STRING_CAPACITY='22' -D_RWSTD_NO_LIST_NODE_BUFFER -DBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS -DEIGEN_MPL2_ONLY -DEIGEN_DONT_USE_RESTRICT_KEYWORD -DNDEBUG -I/export/home/dave/source/local/include -I/usr/local/include/boost-1_54 " -compat=5 -g -xdebuginfo=macro -xdbggen=no%stabs+dwarf2+usedonly -xF=%none -xbuiltin=%all -pic -xldscope=global -xivdep=loop -xalias_level=layout -xdepend -O4 -errtags -erroff=anonnotype,anonstruct,badargtype2w,hidef,notemsource,wbadasg +w CSeasonalComponent.cc -ptb .objs/CSeasonalComponent.o -o /tmp/ccfe.01.ir -s /tmp/ccfe.02.sd 2> /tmp/ccfe.03.err
    /opt/solarisstudio12.3/prod/bin/iropt -Qy -O4 -xarch=sse3 -m64 -xchip=nehalem -xcache=generic -fsimple=1 -g -depend -mt -k -xalias_level=layout -xbuiltin=%all -xlibmopt -xprefetch=auto,explicit -xprefetch_level=1 -xprefetch_auto_type=no%indirect_array_access -xvector=no%lib,simd -F -o /tmp/iropt.05.ir -is /tmp/ccfe.02.sd /tmp/ccfe.01.ir 2> /tmp/iropt.06.err
    rm /tmp/ccfe.01.ir
    /opt/solarisstudio12.3/prod/bin/c++filt -filt=no%stdlib < /tmp/iropt.06.err >> /tmp/ccfe.03.err
    rm /tmp/iropt.06.err
    /opt/solarisstudio12.3/prod/bin/stdlibfilt -stderr < /tmp/ccfe.03.err
    rm /tmp/ccfe.03.err
    /opt/solarisstudio12.3/prod/bin/ir2hf -Qy -g -O4 -xbuiltin=%all -m64 /tmp/iropt.05.ir /tmp/ccfe.02.sd /tmp/ir2hf.07.hf
    rm /tmp/ccfe.02.sd
    rm /tmp/iropt.05.ir
    /opt/solarisstudio12.3/prod/bin/ube -Qy -verbose -iropt -O4 -comdat -m64 -xarch=sse3 -xchip=nehalem -xcache=generic -xannotate=yes -il /opt/solarisstudio12.3/prod/lib/amd64/libm.il -fsimple=1 -ZW -g -xalias_level=layout -PIC -xbuiltin=%all -N -xprefetch=auto,explicit -xprefetch_level=1 -xthreadvar=dynamic -mt -fbe /opt/solarisstudio12.3/prod/bin/fbe -ipo .objs/CSeasonalComponent.o -dbgfile /tmp/ube.09.dbg -S /tmp/ube.08.s /tmp/ir2hf.07.hf
    rm /tmp/ir2hf.07.hf
    /opt/solarisstudio12.3/prod/bin/fbe -Qy -xarch=amd64 -xchip=nehalem -warn=%none -o .objs/CSeasonalComponent.o /tmp/ube.08.s -dbgfile /tmp/ube.09.dbg
    rm /tmp/ube.08.s
    rm /tmp/ube.09.dbg
    Running the CC command with the -keeptmp option added leaves these files in /tmp:
    -rw-rw-r--   1 dave     dev            0 Dec 11 16:20 /tmp/ccfe.1386778859.8273.03.err
    -rw-rw-r--   1 dave     dev      45679331 Dec 11 16:21 /tmp/ccfe.1386778859.8273.01.ir
    -rw-rw-r--   1 dave     dev            0 Dec 11 16:21 /tmp/iropt.1386778859.8273.06.err
    -rw-rw-r--   1 dave     dev       393220 Dec 11 16:21 /tmp/ccfe.1386778859.8273.02.sd
    -rw-rw-r--   1 dave     dev      47820727 Dec 11 16:21 /tmp/iropt.1386778859.8273.05.ir
    -rw-rw-r--   1 dave     dev      60490992 Dec 11 16:21 /tmp/ir2hf.1386778859.8273.07.hf
    -rw-rw-r--   1 dave     dev      22377791 Dec 11 16:21 /tmp/ube.1386778859.8273.09.dbg
    -rw-rw-r--   1 dave     dev      8915850 Dec 11 16:21 /tmp/ube.1386778859.8273.08.s
    Finally, creating an fbe command similar to the one from the dry run output using the last two files in /tmp with the -V option added as follows:
    /opt/solarisstudio12.3/prod/bin/fbe -V -Qy -xarch=amd64 -xchip=nehalem -warn=%none -o .objs/CSeasonalComponent.o /tmp/ube.1386778859.8273.08.s -dbgfile /tmp/ube.1386778859.8273.09.dbg
    results in this:
    as: Sun Compiler Common 12.3 SunOS_i386 2011/11/16
    demangle fatal internal error: information lost in character quoting
    I would be happy to provide the /tmp/ube.1386778859.8273.08.s and /tmp/ube.1386778859.8273.09.dbg files to assist with reproduction of this problem if anyone is interested.

    The problem with creating a simple test case that doesn't rely on Boost or Eigen is that the error message is so vague that there's no hint about where to start.  The pre-processed source of the file that causes the problem is 4.7MB so trying to chop that down without any clue as to what's relevant is going to be very hard.
    You could do everyone a favour if future internal error messages contained at least some information about what caused the problem.  I know they're not supposed to happen at all, but clearly they occasionally do.  For example, instead of:
    demangle fatal internal error: information lost in character quoting
    something like:
    demangle fatal internal error: information lost in character quoting: corrupt symbol is __1cFEigenPPlainObjectBase4n0AGMatrix4CdIBiBiAIBiB___KresizeLike4n0AOGeneralProduct4n0AFBlock4Ckn0AGMatrix4CdIBIB_"""_oops
    Then that would give somebody trying to report the problem or change their code to avoid it a starting point for where to look.
    Anyway, I've worked around the problem by changing -g3 in the CXXFLAGS in the Makefile to `test $< = CSeasonalComponent.cc || echo -g3` which avoids the error.  And hopefully like you say it's a known problem that's already fixed in the next version of Solaris Studio.

  • Compiling / Linking error in Solaris Studio 12.3 C++ Compiler

    Hi,
    I downloaded Solaris Studio 12.3 (SolarisStudio12.3-solaris-x86-pkg.tar.bz2) & unpacked and installed on the default directory (in non-interactive mode) of local machine running Solaris 10 10/09 s10x_u8wos_08a X86. Also applied all the required patches by running the "install_patches.sh" after running "solarisstudio.sh".
    My application has make files to take care of the building the whole application. I made necessary changes to the make files to pick up the latest Solaris 12.3 C++ compiler. I could see that it has picked up for compiling.
    While building the whole project, the source files are compiled to object files successfully but when it is creating shared object (.so) files it stops at the below error:
    /opt/solarisstudio12.3/prod/bin/CC -mt -i -library=stlport4 -zdefs -ztext -G -h xmem.so -Lpic/lib/debug/sol32 -L/MyHome/open_source/abc/lib/sol32 -L/MyHome/open_source/mno/lib/sol32 -L/MyHome/open_source/pqr/lib/sol32 -L/MyHome/open_source/xyz/lib/sol32 -g -lc -lCrun -lumem -m32 -o debug/xmem.so
    *usage: CC [ options ] files. Use 'CC -flags' for details*
    Note:
    Some third party open source libraries are being used in the project. Those libraries are not built using Solaris Studio 12.3 compilers.
    Tried changing lot of options and re-ordering the switches/options but no luck. But on changing as mentioned below the shared library DID build successfully
    - Added space after '-L' option, added '*' at the end of path like "-L/MyHome/open_source/pqr/lib/sol32/*".
    Note:*_
    +1) I tried compiling a separate small program into object files using Solaris 12.3 C++ compiler but got the above error/problem when linking the experimental libraries (shared object) with most of the options used in the above command.+
    +2) The same project gets built successfully in Solaris Studio 12.1 (studio12.1-091123) and Solaris Studio 12 (studio12-070724) but the same is failing in Solaris Studio 12.3.+
    Can someone please help me to understand the issue and resolve it? Let me know if any more information is needed.
    Thanks in advance.
    -Vijay
    Edited by: 974820 on Dec 4, 2012 7:05 PM

    Hi Steve,
    Thanks for the valuable input on the -xdebugformat option. Every suggestion of yours is helping me to proceed further to some extent. This time too, after removing the "-xdebugformat=stabs", I am able to go past the previous error.
    BUT this time I am running into -xarch option problem. I am not sure if this is a application design or compilation options issue or compiler issue. Posting it here to get some inputs to understand more on this before raising any service request with Oracle Support.
    The error details and workarounds used with their result._
    NOTE: All these compilation were passed in earlier Studio versions.
    ORIGINAL - with -xarch=sse2
    ===============================ERRORS===============================
    /opt/solarisstudio12.3/prod/bin/CC -errtags=yes -Kpic -mt -errwarn -xdepend=yes -DUSING_STUDIO11 common/xm2/x86/common/inc/templates.il -D__EXTENSIONS__ -g -xarch=sse2 -Icommon/xccolor/inc -Icommon/xm2/x86/include -Icommon/xm2/x86/assembly/inc -Icommon/xm2/x86/common/inc -Iinclude -Icommon/xm2/x86hbc/expander/inc -Icommon/xm2/x86/jpeg/inc -Icommon/xm2embedded/host/x86/hbc/inc -Icommon/xm2/common/inc -Iimg-drv//include -Icommon/xm2/config/inc -Icommon/Utilities/include -Iimg-drv/ipshared/include -Icommon/cpp/inc -I/workspaces/3rd_Party/open_source/poco-1.3.6p2/include -I/workspaces/3rd_Party/open_source/boost_1_49_0/include -I/workspaces/3rd_Party/open_source/ACE-6.0 -I/workspaces/osnl/include -I/workspaces/osnl/SunOS/include -m32 -c common/xm2/x86/hbc/src/hbc_jpeg.c -o artifacts/common/xm2/x86/obj/debug/sol32/hbc_jpeg.o
    Assembler:
    "/tmp/yabeAAAIaaOxX", line 294 : Syntax error
    Near line: " maskmovq %mm0,%ebp"
    "/tmp/yabeAAAIaaOxX", line 1175 : Syntax error
    Near line: " maskmovq %mm0,%ebp"
    Failure in /opt/solarisstudio12.3/prod/bin/fbe, status = 0x7f00
    Fatal Error exec'ing /opt/solarisstudio12.3/prod/bin/fbe
    common/xm2embedded/host/x86/src/hbc_jpeg.c:1062 Warning: mmextract_epi16 intrinsic requires -xarch=sse4_1.*
    cc: acomp failed for common/xm2/x86/hbc/src/hbc_jpeg.c
    gmake[1]: *** [_artifacts_/common/xm2/x86/obj/debug/sol32/hbc_jpeg.o] Error 2
    gmake[1]: *** Waiting for unfinished jobs....
    ===============================ERRORS===============================
    AFTER CHANGING -xarch=sse2 to -xarch=sse4_1
    ===============================ERRORS===============================
    /opt/solarisstudio12.3/prod/bin/CC -errtags=yes -Kpic -mt -errwarn -library=stlport4 -DCPU_LITTLE_ENDIAN -DDSP_LITTLE_ENDIAN -xarch=sse4_1 -DTIXML_USE_STL=1 -erroff=doubunder -g -Icommon/xm2/xm2util/src -Icommon/xm2/xm2util/inc -Icommon/xm2/common/inc -Icommon/xm2/config/inc -Icommon/xm2embedded/host/utils/inc -Icommon/xm2/imageutil/inc -Icommon/xm2/x86hbc/include -Icommon/include -Iinclude -Icommon/xcc/inc -Icommon/cpp/inc -Icommon/Util/include -I/workspaces/open_source/poco-1.3.6p2/include -I/workspaces/3rd_Party/open_source/boost_1_49_0/include -I/workspaces/3rd_Party/open_source/ACE-6.0 -I/workspaces/CP.00_compiler/docusp/osnlayer/include -I/workspaces/osnl/SunOS/include -m32 -c common/xm2/xm2/src/JPEGHelpers.cpp -o artifacts/common/xm2/xm2/src/obj/debug/sol32/JPEGHelpers.o
    "common/xm2/xm2/src/JPEGHelpers.cpp", line 918: Error, nostructsym: Variable table is not a structure.
    "common/xm2/xm2/src/JPEGHelpers.cpp", line 919: Error, nostructsym: Variable table is not a structure.
    "common/xm2/xm2/src/JPEGHelpers.cpp", line 926: Error, nostructsym: Variable clear_high2bits is not a structure.
    "common/xm2/xm2/src/JPEGHelpers.cpp", line 927: Error, nostructsym: Variable clear_high2bits is not a structure.
    "common/xm2/xm2/src/JPEGHelpers.cpp", line 1223: Error, unassigned: The variable clear_high2bits has not yet been assigned a value.
    "common/xm2/xm2/src/JPEGHelpers.cpp", line 1224: Error, unassigned: The variable table has not yet been assigned a value.
    6 Error(s) detected.
    /opt/solarisstudio12.3/prod/bin/CC -errtags=yes -Kpic -mt -errwarn -library=stlport4 -DCPU_LITTLE_ENDIAN -DDSP_LITTLE_ENDIAN -xarch=sse4_1 -DTIXML_USE_STL=1 -erroff=doubunder -g -Icommon/xm2/xm2/src -Icommon/xm2/xm2/inc -Icommon/xm2/common/inc -Icommon/xm2/config/inc -Icommon/xm2/utils/inc -Icommon/xm2/imageutil/inc -Icommon/xm2/x86/include -Icommon/xm2/include -Iinclude -Icommon/xcc/inc -Icommon/cpp/inc -Icommon/Util/include -I/workspaces/3rd_Party/open_source/poco-1.3.6p2/include -I/workspaces/3rd_Party/open_source/boost_1_49_0/include -I/workspaces/3rd_Party/open_source/ACE-6.0 -I/workspaces/osnl/include -I/workspaces/osnl/SunOS/include -m32 -c common/xm2/xm2/src/Color.cpp -o artifacts/common/xm2/xm2/src/obj/debug/sol32/Color.o
    "common/xm2/xm2/inc/JPEGStripsImage.hpp", line 85: Error, badinitlval: Initializing std::vector<unsigned, xm2::XM2Allocator<unsigned>>& requires an lvalue.
    "common/xm2/image/inc/ISelector.hpp", line 36: Error, badinitlval: Initializing std::vector<unsigned, xm2::XM2Allocator<unsigned>>& requires an lvalue.
    "common/xm2/image/inc/RasterSelectorImage.hpp", line 53: Error, badinitlval: Initializing std::vector<unsigned, xm2::XM2Allocator<unsigned>>& requires an lvalue.
    3 Error(s) detected.
    6 Error(s) detected.gmake[1]: *** [_artifacts_/common/xm2/xm2/src/obj/debug/sol32/JPEGHelpers.o] Error 2
    gmake[1]: *** Waiting for unfinished jobs....
    3 Error(s) detected.gmake[1]: *** [_artifacts_/common/xm2/xm2/src/obj/debug/sol32/Color.o] Error 2
    ===============================ERRORS===============================
    Thank you.
    Vijay

  • Oracle Solaris Studio 12.4

    NetBeans 7.2 is announcing Oracle Solaris Studio 12.4. So i would like to know when, what, ... etc.
    Thanks.

    OK, I did find "12.4" mentioned in some NB code updates. Apparently that was work intended to support a future Studio release. The person making the updates chose to use an inappropriate designation, one that might not ever apply to any Studio release.
    Studio releases are usually preceded by a public pre-release (aka "Beta") program. We welcome Forum members to try out the next pre-release when we announce it here.

  • CBLAS in sun performance library coming with solaris studio 12.2

    Hello,
    In sunperf library coming with sun studio 12u1 (linux x86) I can use cblas callings using the standard names cblas_xxxx. This interface do not appears in sunperf.h (you can use standard cblas.h) but the objects are in libsunperf.(a|so).
    But in solaris studio 12.2 libsunperf cblas_xxxx objects do not exists. Is this normal? Contains libsunperf a standard c blas interface?
    Thanks

    Hello again,
    In this blog post
    http://www.mlds-networks.com/index.php/component/option,com_mojo/Itemid,29/p,35/
    is explained how to link the ACML (AMD core math library) in order to use the standard CBLAS interface (ACML do not provides a standard CBLAS). I tried it and all runs OK. I did the same for the sun performance library in solstudio 12.2 and the compilation proccess runs ok, but in the testing step all functions fails becaude an incorrect argument in each function.
    Exists any way for use the standard CBLAS interface with sun performance library? As I noted in my previous post, version 12.1 of sunstudio libsunperf contains the standard CBLAS interface, but I would like to use version 12.2
    Thanks

  • Is "version" broken in Solaris Studio 12.2?

    With 12.1, the "{Studio install path}/bin/version" command, when run with no arguments, produces output indicating that Sun Studio 12.1 is installed. With 12.2, there is no output that a script could use to determine which version of Studio is installed. It seems that when verison is invoked with no arguments, it attempts to read from the directory {Studio install path}/inventory. Our 12.1 installation has this directory, but it is not present in our 12.2 installation.
    Does anyone have a Studio 12.2 installation on Solaris 10 that does include an inventory directory?
    This is what my output from version looks like with 12.2:
    Machine hardware:   sun4u
    OS version:         5.10
    Processor type:     sparc
    Hardware:           SUNW,SPARC-Enterprise
    The following components are installed on your system:
    And this is what it looks like with 12.1:
    Machine hardware:   sun4u
    OS version:         5.10
    Processor type:     sparc
    Hardware:           SUNW,SPARC-Enterprise
    The following components are installed on your system:
    Sun Studio 12 update 1
    Sun Studio 12 update 1 C Compiler
    Sun Studio 12 update 1 C++ Compiler
    Sun Studio 12 update 1 Tools.h++ 7.1
    Sun Studio 12 update 1 C++ Standard 64-bit Class Library
    Sun Studio 12 update 1 Garbage Collector
    Sun Studio 12 update 1 Fortran 95
    Sun Studio 12 update 1 Debugging Tools (including dbx)
    Sun Studio 12 update 1 IDE
    Sun Studio 12 update 1 Performance Analyzer (including collect, ...)
    Sun Studio 12 update 1 Performance Library
    Sun Studio 12 update 1 Scalapack
    Sun Studio 12 update 1 LockLint
    Sun Studio 12 update 1 Building Software (including dmake)
    Sun Studio 12 update 1 Documentation Set
    Sun Studio 12 update 1 /usr symbolic links and GNOME menu item
    version of "/opt/sunstudio12.1/bin/../prod/bin/../../bin/cc": Sun C 5.10 SunOS_sparc 2009/06/03
    version of "/opt/sunstudio12.1/bin/../prod/bin/../../bin/CC": Sun C++ 5.10 SunOS_sparc 2009/06/03
    version of "/opt/sunstudio12.1/bin/../prod/bin/../../bin/f90": Sun Fortran 95 8.4 SunOS_sparc 2009/06/03
    version of "/opt/sunstudio12.1/bin/../prod/bin/../../bin/dbx": Sun DBX Debugger 7.7 SunOS_sparc 2009/06/03
    version of "/opt/sunstudio12.1/bin/../prod/bin/../../bin/analyzer": Sun Analyzer 7.7 SunOS_sparc 2009/06/03
    version of "/opt/sunstudio12.1/bin/../prod/bin/../../bin/dmake": Sun Distributed Make 7.9 SunOS_sparc 2009/06/03

    Nik - thanks for confirming that we aren't alone in seeing this behavior.
    Chris, thanks for explaining that this is the behavior that we should expect. I spent several hours considering if something might have gone wrong during the installation of Solaris Studio. My colleague who actually performed the installation will likely be almost as gratified as I am to review your explanation.
    By way of feeback, I would like to offer the following comments.
    1) It's regrettable that this functionality was removed without any sort of deprecation notice (at least, none that I could find, and I looked pretty hard). My colleagues and I spent several hours wondering what we did wrong since this wasn't working. Truss shows that the 12.2 bin/version tool still looks for the "inventory" directory and so the fact that it was missing suggested to me that something might have gone wrong with our installation.
    2) While the alternative pkginfo command you suggest is, as you described it, "parsable by humans", it's not especially script-friendly. A build script that only has the simple task of warning that you are using an unsupported older version of the Solaris Studio requires many lines of new logic to deal with this change, and one that has the more complex task of choosing different compiler args depending on the version of Sun/Solaris Studio that is being used really has to work overtime just to accommodate the inconsistent methods of identifying which version is in use.
    3) It would be really nice if there was some simple, script-friendly, way to discover what version is in use, and if that method was consistently supported from one release to the next, and if that method reported version numbers in ways that lend themselves to interpreation by scripts. I'm sure that there's some korn guru out there who can write one line of korn-shell code that will be able to conclude that pkginfo's value of "SPRO-12u2-cc" is greater than the 12.1 version's report of "Sun Studio 12 update 1", but I'm a "C" guy, not a script guru, so I wind up with a paragraph of korn shell code to pull this off. Can't we just have some program or (ideally) cc argument that spits out a string like "12.2"? It would be espeically sweet if it could do this on the first line of output (or even just a consistent offset from the first line).
    Sorry for the rant, I really do appreciate your explanation, and I hope my comments have not offended you.

  • C++14 Standard Support for Solaris Studio

    Hi Steve,
    Currently, does Solaris Studio 12.4 Final Release support C++14 constructs? I saw the Standard C++ website https://isocpp.org/std/status and the C++14 Standard will soon release the final draft later this year.
    But, given that C++14 is going to be a minor change as compared to C++11, which they mentioned C++14 mostly completes C++11 (in FAQ: https://isocpp.org/wiki/faq/cpp14#cpp14-compilers), will the next release add support of C++14 before the next standard, which is slated for around 2017?
    Although at this stage nothing has been confirmed yet, I wonder if the statement in the Standard C++ FAQ would mean that the new C++14 would still be treated as C++11, which would mean that Solaris Studio compilers would handle C++14 codes as under C++11 standard (i.e. the -std=c11 and -std=c++11 flags can be used to compile C++14 codes), though I am not sure.
    Regards,
    Brian

    Compared to C++11, C++14 has two kinds of changes:
    1. "Bug fixes":  Primarily clarification of issues in C++11 that were incomplete or ambiguous, and loosening of rules that were deemed to be unnecessarily strict. There is at least one rule change, where C++11 required instantiation of unused template functions that had an exception-specification, and C++14 does not.
    2. New features:  New syntax, and new contents in the standard library.
    Like most other compilers, Studio 12.4 in C++11 mode has many of the C++14 bug fixes, including the rule change about template functions that I mentioned above. (For one customer's code, the rule change resulted in a nearly 20x speedup in compile time, from days to hours.)
    Studio 12.4 does not have any of the new C++14 features, and the compiler does not have a C++14 mode. The reason is timing; Studio 14 feature freeze predated approval of the C++14 standard. We prefer not to implement proposed new features until they are published in the standard, because features have a habit of changing between their supposedly final form and actual publication. We have been bitten by such changes in the past, and it creates problems for us, and our customers who depend on compiler stability for large projects.
    We expect to implement C++14 in a future release. Oracle policy does not permit me to be more specific.

  • Compiler Error after Upgrading Sun Studio 12 to Solaris Studio 12.3

    This code compiled with Solaris Studio CC: Sun C++ 5.9 SunOS_sparc Patch 124863-02 2007/12/18
    but fails to compile under CC: Sun C++ 5.12 SunOS_sparc Patch 148506-14 2013/09/24
    CC -features=zla -mt -g -library=Cstd  -DACE_HAS_KSTAT -DACE_HAS_CUSTOM_EXPORT_MACROS=0 -D_POSIX_PTHREAD_SEMANTICS   -I/export/home/ttp/ACE_wrappers -DACE_HAS_SCTP -DACE_HAS_LKSCTP -D__ACE_INLINE__ -I../jpeg-6b -I../tiff-v3.5.7/libtiff/ -I../tags/ -I/RogueWave/SourcePro/12.5 -D_XPG4_2 -D__EXTENSIONS__ -D_RWCONFIG_15d -DRW_MULTI_THREAD -D_REENTRANT -DTTPVERSIONKEY=\"7.00-alpha-2013/11/15\" -DRW_USER_TRACE_LEVEL=5  -c -KPIC -o .shobj/julian.o julian.cc
    Error Message: "/opt/solarisstudio12.3/prod/include/CC/Cstd/rw/traits", line 538: Error: The function "wcsstr" must have a prototype
    If I add the -H to trace the headers this is what I get below. I have been fighting with this for a week now and really don't know what to do at this point. We use the RogueWave libraries with the Solaris Studio Compiler for more additional libraries but RogueWave says our version is compatible with Solaris Studio 12.3 and in fact we successfully compiled the RogueWave libraries with this compiler. I"m sure it something in our code but I can't quite figure it out.
    =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2013.11.15 17:45:03 =~=~=~=~=~=~=~=~=~=~=~=
    gmake -f GNUmakefile.TTPLib
    GNUmakefile: /export/home/ttp/ttproot/ttp/TTPLib/GNUmakefile.TTPLib MAKEFLAGS=
    CC -features=zla -H -mt -g -library=Cstd  -DACE_HAS_KSTAT -DACE_HAS_CUSTOM_EXPORT_MACROS=0 -D_POSIX_PTHREAD_SEMANTICS   -I/export/home/ttp/ACE_wrappers -DACE_HAS_SCTP -DACE_HAS_LKSCTP -D__ACE_INLINE__ -I../jpeg-6b -I../tiff-v3.5.7/libtiff/ -I../tags/ -I/RogueWave/SourcePro/12.5 -D_XPG4_2 -D__EXTENSIONS__ -D_RWCONFIG_15d -DRW_MULTI_THREAD -D_REENTRANT -DTTPVERSIONKEY=\"7.00-alpha-2013/11/15\" -DRW_USER_TRACE_LEVEL=5  -c -KPIC -o .shobj/julian.o julian.cc
    julian.h
            /usr/include/time.h
                    /usr/include/sys/feature_tests.h
                            /usr/include/sys/ccompile.h
                            /usr/include/sys/isa_defs.h
                    /usr/include/iso/time_iso.h
                    /usr/include/sys/types.h
                            /usr/include/sys/machtypes.h
                            /usr/include/sys/int_types.h
                            /usr/include/sys/select.h
                                    /usr/include/sys/time_impl.h
                                    /usr/include/sys/time.h
                                            /usr/include/sys/types.h
                                            /usr/include/sys/select.h
            defines.h
                    /opt/solarisstudio12.3/prod/include/CC/Cstd/deque
                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/stddefs.h
                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/stdcomp.h
                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/compnent.h
                                    /usr/include/stddef.h
                                            /usr/include/iso/stddef_iso.h
                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/rwdispatch.h
                            /opt/solarisstudio12.3/prod/include/CC/Cstd/algorithm
                                    /usr/include/stdlib.h
                                            /usr/include/iso/stdlib_iso.h
                                            /usr/include/iso/stdlib_c99.h
                                            /usr/include/sys/wait.h
                                                    /usr/include/sys/resource.h
                                                    /usr/include/sys/siginfo.h
                                                            /usr/include/sys/machsig.h
                                                    /usr/include/sys/procset.h
                                                            /usr/include/sys/signal.h
                                                                    /usr/include/sys/iso/signal_iso.h
                                                                            /usr/include/sys/unistd.h
                                                                    /usr/include/sys/ucontext.h
                                                                            /usr/include/sys/regset.h
                                                                                    /usr/include/v7/sys/privregs.h
                                                                                            /usr/include/v7/sys/psr.h
                                                                                            /usr/include/sys/fsr.h
                                                                            /usr/include/sys/signal.h
                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/iterator
                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/iterator
                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/ostream
                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/ios
                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/rwstderr.h
                                                                    /usr/include/stdarg.h
                                                                            /usr/include/iso/stdarg_iso.h
                                                                                    /usr/include/sys/va_impl.h
                                                                                            /usr/include/sys/va_list.h
                                                                            /usr/include/iso/stdarg_c99.h
                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/rwstderr_macros.h
                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/rwlocale
                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/string
                                                                            /usr/include/string.h
                                                                                    /usr/include/iso/string_iso.h
                                                                            /usr/include/ctype.h
                                                                                    /usr/include/iso/ctype_iso.h
                                                                                    /usr/include/iso/ctype_c99.h
                                                                            /usr/include/wchar.h
                                                                                    /usr/include/iso/wchar_iso.h
                                                                                            /usr/include/stdio_tag.h
                                                                                            /usr/include/wchar_impl.h
                                                                                            /usr/include/stdio.h
                                                                                                    /usr/include/iso/stdio_iso.h
                                                                                                            /usr/include/stdio_impl.h
                                                                                                    /usr/include/iso/stdio_c99.h
                                                                                    /usr/include/iso/wchar_c99.h
                                                                            /usr/include/wctype.h
                                                                                    /usr/include/iso/wctype_iso.h
                                                                                    /usr/include/iso/wctype_c99.h
                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/string_ref
                                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/memory
                                                                                            /usr/include/limits.h
                                                                                                    /usr/include/iso/limits_iso.h
                                                                                                    /usr/include/sys/int_limits.h
                                                                                            /opt/solarisstudio12.3/prod/include/CC/new
                                                                                                    /opt/solarisstudio12.3/prod/include/CC/exception
                                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/utility
                                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/stdmutex.h
                                                                                                    /usr/include/pthread.h
                                                                                                            /usr/include/sched.h
                                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/traits
                                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/iotraits
                                                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/iosfwd
                                                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/traits
    "/opt/solarisstudio12.3/prod/include/CC/Cstd/rw/traits", line 538: Error: The function "wcsstr" must have a prototype.
                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/stdexcept
                                                                    /opt/solarisstudio12.3/prod/include/CC/typeinfo
                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/locimpl
                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/locvector
                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/vendor
                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/ctype
                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/numeral
                                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/iosbase
                                                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/limits
                                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/math.h
                                                                                                    /usr/include/math.h
                                                                                                            /usr/include/iso/math_iso.h
                                                                                                            /usr/include/iso/math_c99.h
                                                                                                            /usr/include/floatingpoint.h
                                                                                                                    /usr/include/sys/ieeefp.h
                                                                                            /usr/include/float.h
                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/codecvt
                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/usefacet
                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/streambuf
                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/istream
                    /opt/solarisstudio12.3/prod/include/CC/Cstd/set
                            /opt/solarisstudio12.3/prod/include/CC/Cstd/functional
                            /opt/solarisstudio12.3/prod/include/CC/Cstd/rw/tree
                    /usr/include/sys/param.h
            messages.h
                    /usr/include/assert.h
                    /opt/solarisstudio12.3/prod/include/CC/Cstd/list
                    /RogueWave/SourcePro/12.5/rw/trace/trace.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceSetState.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceEventSeverity.h
                                    /RogueWave/SourcePro/12.5/rw/trace/pkgdefs.h
                                            /RogueWave/SourcePro/12.5/rw/config/rwconfig_trace.h
                                                    /RogueWave/SourcePro/12.5/rw/config/rwconfig.h
                                                    /RogueWave/SourcePro/12.5/rw/config/rwc_trace_15d.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwconfig_tls.h
                                                                    /RogueWave/SourcePro/12.5/rw/config/rwc_tls_15d.h
                                            /RogueWave/SourcePro/12.5/rw/defs.h
                                                    /usr/include/assert.h
                                                    /RogueWave/SourcePro/12.5/rw/compiler.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwconfig_tls.h
                                                                    /RogueWave/SourcePro/12.5/rw/config/rwc_tls_15d.h
                                                    /RogueWave/SourcePro/12.5/rw/typedefs.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwconfig_tls.h
                                                                    /RogueWave/SourcePro/12.5/rw/config/rwc_tls_15d.h
                                                    /RogueWave/SourcePro/12.5/rw/limits.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwconfig_tls.h
                                                                    /RogueWave/SourcePro/12.5/rw/config/rwc_tls_15d.h
                                                    /RogueWave/SourcePro/12.5/rw/rwwind.h
                                                    /RogueWave/SourcePro/12.5/rw/compat.h
                                                            /RogueWave/SourcePro/12.5/rw/defs.h
                                                    /RogueWave/SourcePro/12.5/rw/utility.h
                                                            /RogueWave/SourcePro/12.5/rw/defs.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceEvent.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceEventClient.h
                                    /RogueWave/SourcePro/12.5/rw/trace/except.h
                                            /RogueWave/SourcePro/12.5/rw/rwerr.h
                                    /RogueWave/SourcePro/12.5/rw/trace/fwd.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceEventClientImp.h
                                    /RogueWave/SourcePro/12.5/rw/trace/RWTraceEventFilter.h
                                    /RogueWave/SourcePro/12.5/rw/ref.h
                                            /RogueWave/SourcePro/12.5/rw/tools/atomic.h
                                                    /RogueWave/SourcePro/12.5/rw/tools/atomics/atomic_sunpro.h
                                                            /RogueWave/SourcePro/12.5/rw/tools/atomicorder.h
                                                            /usr/include/sys/atomic.h
                                                                    /usr/include/sys/inttypes.h
                                                                            /usr/include/sys/int_const.h
                                                                            /usr/include/sys/int_fmtio.h
                                                            /usr/include/stdint.h
                                                                    /usr/include/sys/stdint.h
                                    /RogueWave/SourcePro/12.5/rw/mutex.h
                                            /usr/include/synch.h
                                                    /usr/include/sys/machlock.h
                                                    /usr/include/sys/synch.h
                                            /usr/include/thread.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceOstreamClient.h
                                    /RogueWave/SourcePro/12.5/rw/rstream.h
                                            /RogueWave/SourcePro/12.5/rw/tools/ristream.h
                                            /RogueWave/SourcePro/12.5/rw/tools/rostream.h
                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/iostream
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceOstreamClientImp.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceEventFilterImp.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceSingleClientFilter.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceSingleClientFilterImp.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceLevelFilter.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceLevelFilterImp.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceMultiClientFilter.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceMultiClientFilterImp.h
                                    /RogueWave/SourcePro/12.5/rw/tvordvec.h
                                            /RogueWave/SourcePro/12.5/rw/epersist.h
                                                    /RogueWave/SourcePro/12.5/rw/vstream.h
                                                    /RogueWave/SourcePro/12.5/rw/rwfile.h
                                                    /RogueWave/SourcePro/12.5/rw/toolerr.h
                                                            /RogueWave/SourcePro/12.5/rw/message.h
                                                    /RogueWave/SourcePro/12.5/rw/rwstore.h
                                                            /RogueWave/SourcePro/12.5/rw/rwassert.h
                                                            /RogueWave/SourcePro/12.5/rw/rwset.h
                                                                    /RogueWave/SourcePro/12.5/rw/hashtab.h
                                                                            /opt/solarisstudio12.3/prod/include/CC/Cstd/vector
                                                                            /RogueWave/SourcePro/12.5/rw/colclass.h
                                                                                    /RogueWave/SourcePro/12.5/rw/collect.h
                                                                                            /RogueWave/SourcePro/12.5/rw/stringid.h
                                                                                                    /RogueWave/SourcePro/12.5/rw/edefs.h
                                                                                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTIdentity.h
                                                                                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTIsSame.h
                                                                                                                    /RogueWave/SourcePro/12.5/rw/tools/traits/RWFalseType.h
                                                                                                                    /RogueWave/SourcePro/12.5/rw/tools/traits/RWTrueType.h
                                                                                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTRemoveReference.h
                                                                                                                    /RogueWave/SourcePro/12.5/rw/tools/traits/RWTIsLvalueReference.h
                                                                                                                    /RogueWave/SourcePro/12.5/rw/tools/traits/RWTIsRvalueReference.h
                                                                                                    /RogueWave/SourcePro/12.5/rw/cstring.h
                                                                                                            /RogueWave/SourcePro/12.5/rw/tools/stdcstring.h
                                                                                                                    /RogueWave/SourcePro/12.5/rw/tools/hash.h
                                                                                                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTConditional.h
                                                                                                                    /RogueWave/SourcePro/12.5/rw/tools/cstrutil.h
                                                                                            /RogueWave/SourcePro/12.5/rw/mempool.h
                                                                                    /RogueWave/SourcePro/12.5/rw/iterator.h
                                            /RogueWave/SourcePro/12.5/rw/epfunc.h
                                            /RogueWave/SourcePro/12.5/rw/tools/algorithm.h
                                                    /RogueWave/SourcePro/12.5/rw/tools/iterator.h
                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTEnableIf.h
                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTIsIntegral.h
                                                    /RogueWave/SourcePro/12.5/rw/tools/traits/RWTRemoveCV.h
                                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTRemoveConst.h
                                                                    /RogueWave/SourcePro/12.5/rw/tools/traits/RWTIsConst.h
                                                            /RogueWave/SourcePro/12.5/rw/tools/traits/RWTRemoveVolatile.h
                                                                    /RogueWave/SourcePro/12.5/rw/tools/traits/RWTIsVolatile.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceManager.h
                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceManagerImp.h
                                    /RogueWave/SourcePro/12.5/rw/once.h
                                    /RogueWave/SourcePro/12.5/rw/tvslist.h
                                            /RogueWave/SourcePro/12.5/rw/stdex/slist.h
                            /RogueWave/SourcePro/12.5/rw/trace/userdefs.h
                                    /RogueWave/SourcePro/12.5/rw/trace/tracemacros.h
                                            /RogueWave/SourcePro/12.5/rw/tools/cstrstrm.h
                                                    /opt/solarisstudio12.3/prod/include/CC/Cstd/sstream
                                            /RogueWave/SourcePro/12.5/rw/trace/RWTraceEntryExit.h
                    /RogueWave/SourcePro/12.5/rw/sync/RWMutexLock.h
                            /RogueWave/SourcePro/12.5/rw/sync/pkgdefs.h
                                    /RogueWave/SourcePro/12.5/rw/config/rwconfig_sync.h
                                            /RogueWave/SourcePro/12.5/rw/config/rwc_sync_15d.h
                                                    /RogueWave/SourcePro/12.5/rw/config/rwconfig_tls.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwc_tls_15d.h
                                                    /RogueWave/SourcePro/12.5/rw/config/rwconfig_trace.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwc_trace_15d.h
                                                    /RogueWave/SourcePro/12.5/rw/config/rwconfig_threxcept.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwc_threxcept_15d.h
                                                                    /RogueWave/SourcePro/12.5/rw/config/rwconfig_tls.h
                                                                            /RogueWave/SourcePro/12.5/rw/config/rwc_tls_15d.h
                                                                    /RogueWave/SourcePro/12.5/rw/config/rwconfig_trace.h
                                                                            /RogueWave/SourcePro/12.5/rw/config/rwc_trace_15d.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWSynchObject.h
                                    /RogueWave/SourcePro/12.5/rw/sync/RWCancellationState.h
                                    /RogueWave/SourcePro/12.5/rw/threxcept/threxcept.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRBoundsError.h
                                                    /RogueWave/SourcePro/12.5/rw/threxcept/pkgdefs.h
                                                            /RogueWave/SourcePro/12.5/rw/config/rwconfig_threxcept.h
                                                                    /RogueWave/SourcePro/12.5/rw/config/rwc_threxcept_15d.h
                                                    /RogueWave/SourcePro/12.5/rw/threxcept/thrmsg.h
                                                    /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRIllegalUsage.h
                                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRxmsg.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRExternalError.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRIllegalAccess.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRInternalError.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRInvalidPointer.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHROperationAborted.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHROperationCanceled.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHROperationNotAvailable.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHROperationNotImplemented.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHROperationNotSupported.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHROperationTerminated.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRPermissionError.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRResourceLimit.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRThreadActive.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTHRThreadNotActive.h
                                            /RogueWave/SourcePro/12.5/rw/threxcept/RWTTHRCompatibleException.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTLockGuard.h
                                    /RogueWave/SourcePro/12.5/rw/sync/RWTLockGuardBase.h
                                            /RogueWave/SourcePro/12.5/rw/sync/RWTGuardBase.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTReadLockGuard.h
                                    /RogueWave/SourcePro/12.5/rw/sync/RWTReadLockGuardBase.h
                                            /RogueWave/SourcePro/12.5/rw/sync/RWTReadGuardBase.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTWriteLockGuard.h
                                    /RogueWave/SourcePro/12.5/rw/sync/RWTWriteLockGuardBase.h
                                            /RogueWave/SourcePro/12.5/rw/sync/RWTWriteGuardBase.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTTryLockGuard.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTTryReadLockGuard.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTTryWriteLockGuard.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTUnlockGuard.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTReadUnlockGuard.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWTWriteUnlockGuard.h
                            /RogueWave/SourcePro/12.5/rw/sync/RWThreadId.h
                    messageutilities.h
    "messages.h", line 248: Warning: Implicit int is not supported in C++.
    1 Error(s) and 1 Warning(s) detected.
    gmake: *** [.shobj/julian.o] Error 2
    tip1[~/ttproot/ttp/TTPLib]$

    I resolved this issue. The 2 defines: -D_XPG4_2 -D__EXTENSIONS__ are no longer needed and actually shouldn't be used.
    Dave

  • Solaris Studio 12.4 Beta ube assertion failure with -m64 -fsimple

    I have found a way to get an assertion failure from the ube program that comes with the Solaris Studio 12.4 beta.  The error that gets printed is:
    assertion failed in function gra_peep_hole() @ gra.c:10381
    assert(lf_op_(lf_i) == LD_I)
    The problem occurs whilst compiling a 64 bit version of GNU tar 1.23 using the -fsimple option on the C compiler.
    This problem can be reproduced by getting the pre-processed code I've put on http://pastebin.com/wRHRmaiT and pasting it into a file called human.pre.c.  Then run:
    cc -std=c99 -m64 -mt -O4 -fsimple -c -o human.o human.pre.c
    and you get the assertion failure.
    Alternatively, if you don't trust my code on pastebin, the other way to reproduce it would be to download tar-1.23.tar.gz from GNU Project Archives, extract it and then you'll find the original file human.c in the gnu sub-directory.  Build this with:
    cc -std=c99 -DHAVE_CONFIG_H -I. -I.. -m64 -mt -O4 -fsimple -c -o human.o human.c
    and you'll get the same problem.
    The assertion failure only happens with -m64 and -fsimple.  If either of these flags are omitted it doesn't happen.
    People reading this will probably think I'm crazy to be worrying about floating point optimisations for GNU tar, and it's true that I don't really need to build GNU tar with -fsimple.  However, I am worried that the same problem in ube will bite me at some point on more important code where floating point optimisations are valuable.
    In case it's relevant, I'm working on Oracle Solaris 10 1/13 s10x_u11wos_24a X86.

    BugID 18644770 has been fixed recently and the fix is verified with this problem:
    [sr1-sfbay-03](18644770)-627 > /net/dv103/export/builds/cia//latest/inst/intel-S2/bin/cc -std=c99 -m64 -mt -O4 -fsimple -c human.pre.c -V
    cc: Sun C 5.13 SunOS_i386 CIA_pythia 2014/06/16
    acomp: Sun C 5.13 SunOS_i386 CIA_pythia 2014/06/16
    iropt: Sun Compiler Common 12.4 SunOS_i386 CIA_pythia 2014/06/16
    ube: Sun Compiler Common 12.4 SunOS_i386 CIA_pythia 2014/06/16
    as: Sun Compiler Common 12.4 SunOS_i386 CIA_pythia 2014/06/16
    [sr1-sfbay-03](18644770)-628 >
    This fix should be available soon as the Studio12.4 Beta refresh compiler.

  • Assertion failure from ccfe in Solaris Studio 12.4 beta July refresh

    I have found a way to get an assertion failure from the ccfe program that comes with the Solaris Studio 12.4 beta July refresh.  The error that gets printed is:
    >> Assertion:   (../lnk/funcsym.cc, line 1679)
        while processing text_woarchive.pre.cpp at line 0.
    The problem occurs whilst compiling Boost 1.54.  The original file in the distribution that causes it is libs/serialization/src/text_woarchive.cpp.
    This problem can be reproduced by getting the pre-processed code I've put on http://pastebin.com/E9vxi2z7 and pasting it into a file called text_woarchive.pre.cpp.  Then run:
    CC -std=c++11 -mt -m64 -c -o text_woarchive.o text_woarchive.pre.cpp
    and you get the assertion failure.
    Running:
    CC '-#' -std=c++11 -mt -m64 -c -o text_woarchive.o text_woarchive.pre.cpp
    shows that the assertion is coming from ccfe.
    In case you go back to the original Boost source code I should tell you that prior to generating the pre-processed source I changed:
    #ifdef __SUNPRO_CC
    to:
    #if 0
    in boost/archive/detail/register_archive.hpp.  I did this because there was an error in the __SUNPRO_CC section and I wondered if that workaround code was no longer required with the more modern C++ compiler.  Therefore, I cannot guarantee that the pre-processed source is 100% valid C++ code.  However, even if it's not it would be nice to get a clear error message out of ccfe rather than an assertion failure.
    In case it's relevant, I'm working on Oracle Solaris 10 1/13 s10x_u11wos_24a X86.

    You mentioned in the other answer that you are testing with Boost 1.55.  Are you testing this in C++11 mode?
    Today I downloaded Boost 1.55 and did the following:
    In both tools/build/v2/engine/build.sh and tools/build/v2/tools/sun.jam globally replace SUNWspro with SolarisStudio12.4-beta_jul14-solaris-x86
    In tools/build/v2/tools/sun.jam replace:
    feature.extend stdlib : sun-stlport ;
    feature.compose <stdlib>sun-stlport
        : <cxxflags>-library=stlport4 <linkflags>-library=stlport4
    with:
    feature.extend stdlib : sun-stlport ;
    feature.compose <stdlib>sun-stlport
        : <cxxflags>-std=c++11 <linkflags>-std=c++11
    Note: This is just the quick way I found to con the Boost build system into using C++11 instead of STLport.  The feature in the jam file still has stlport in its name, but that's only a name and the code is being built in C++11 mode.
    In boost/math/special_functions/detail/lanczos_sse2.hpp change line 15 from:
    #if defined(__GNUC__) || defined(__PGI)
    to:
    #if defined(__GNUC__) || defined(__PGI) || defined(__SUNPRO_CC)
    Run:
    ./bootstrap.sh --without-libraries=context --without-libraries=coroutine --without-libraries=graph_parallel --without-libraries=log --without-libraries=mpi --without-libraries=python --without-libraries=test --without-icu
    Run:
    ./b2 -j4 --layout=versioned --disable-icu address-model=64 threading=multi optimization=speed inlining=full
    At this point the vast majority of the code builds, but does not link.
    There are 3 problems:
    The compilation problem with tuple that you've already fixed
    A linker problem with finding std::string related symbols - maybe also related to the gcc header upgrade and now fixed?
    Numerous compilation problems caused by boost/archive/detail/register_archive.hpp
    For this last one the code in the #ifdef __SUNPRO_CC section of boost/archive/detail/register_archive.hpp does appear to be invalid, and leads to the errors:
    "./boost/archive/detail/register_archive.hpp", line 45: Error: The function "adjust_counter" must have a prototype.
    "./boost/archive/detail/register_archive.hpp", line 46: Error: Expression must have a constant value.
    "./boost/archive/detail/register_archive.hpp", line 47: Error: Expression must have a constant value.
    "./boost/archive/detail/register_archive.hpp", line 48: Error: An integer constant expression is required within the array subscript operator.
    Even with Boost 1.55, attempts to fix this lead to the same ccfe assertion.  Trying to use the #else part of the code as I described in the original post does, as does moving the line:
    char adjust_counter(counter<0>);
    so that it comes before the place where adjust_counter is used also then leads to the same assertion:
    >> Assertion:   (../lnk/funcsym.cc, line 1679)
    It's as though any change to boost/archive/detail/register_archive.hpp that fixes the basic code ordering issue lets ccfe get far enough to cause the assertion.
    If there is somebody in your team looking at whether Boost 1.55 compiles with Solaris Studio 12.4 in C++11 mode then hopefully they can relate to what I'm seeing here.  One key point is that they'll have had to edit the jam files to use C++11 mode.
    The other thing is that any insights the person who has been trying to build Boost 1.55 has would be very useful.  I know you don't want to get into officially supporting it, but maybe a blog post with any unofficial hints and tips on getting Boost to build in C++11 mode could be a way to share knowledge.

Maybe you are looking for

  • How can I use today's date as default value in query string filter web part in SharePoint

    I have a query string filter on my web part page. I am trying to figure out how I can set it's default value to Today? I can't find anything online...

  • Dynamic File Adapter status -  Active or Inactive

    Hi Experts Is there any way  to set the Sender/ Receiver File adapter status dynamically to inactive or active. Is there any setting exists in the file adapters ? Please provide me possible solutions. Thanks Faheem

  • After upgrade to OS X Mavericks, Parallels Desktop 9 problems

    After updating to OS X Maverics, I began to have problems with Parallels Desktop 9.  After several re-installs of Parallels, I asked for Parallels Customer support. I was directed to start terminal and type in sudo su and then press return in Termina

  • Using N73 as modem via infrared

    Hi, I'am trying to set-up a configuration to use my N73 as modem via infrared (iRDA). I followed the instruction provided with PC Suite but it didn't worked. One thing is that the "N73 iRDA modem" choice doesn't appear in the modem list (I can see N7

  • Re-using table cells

    If I deque a cell for reuse, will it retain the CGRect? using which it was initialized earlier... here is the code ... CGRect *frame = CGRectMake(10.0, 0.0, 220.0, 25.0); UILabel *value; UITableViewCell *cell = [tableView dequeueReusableCellWithIdent