Sun Studio 12 U 1 and __asm__ __volatile__

Hi,
with SS12U1 on OpenSolaris/x86, is there a way to build C++ code that uses the '__asm__ __volatile__' statements directly or will I have to rewrite the assembly parts?
From what I gathered searching the web, it's the second option, but perhaps there's something obvious I overlooked :-)
TIA
hajma

You don't say exactly what problem you are having, but it sounds like you have run into bug 6607624, where the gcc-style code
__asm__ __volatile__is not recgonized. The problem has been fixed in the development compiler (which won't be available for some time), but is not currently scheduled for fixing in SS12u1.
Please file a bug repor on the C++ compilert at [http://bugs.sun.com], and we'll add your information to the existing report. That should improve the chances of it appearing in a patch to SS12u1.

Similar Messages

  • Sun Studio 11- Now Available (and FREE)

    Howdy,
    Today, Sun announced the availability of Sun Studio 11, the latest release of our venerable set of optimizing compilers and tools. We are very excited about this release for many reasons, including:
    * Record-setting optimizing C,C++,Fortran compilers
    App performance =� Platform + OS + Compilers/Tools
    Using the latest SPARC/x64/x86-systems and Solaris/OpenSolaris versions is great. But to get maximum performance for your app, you need to upgrade to Sun Studio 11.
    http://www.sun.com/software/products/studio/benchmarks.xml
    * Exploits multicore (CMT) systems for maximum throughput performance
    - Multicore optimizations (UltraSPARC, x64)
    - OpenMP 2.5 support with autoscoping across all compilers
    - Support for OpenMP/Solaris/Posix threads in debugger & performance analyzer
    - Dataspace profiling provides hardware and program views into the performance costs associated with application memory references
    * Providing Platform Choice: Solaris 8,9,10 (SPARC, x64, x86) and RHEL 4/SLES 9
    - Optimizing compilers with Solaris versions only
    - Linux version has debugger, performance analyzer, IDE, etc.
    - Technology preview of Linux compilers:
    http://developer.sun.com/sunstudio/linux
    * FREE, unrestricted license (no gotchas)
    Sun Studio has been a good and growing business for Sun, but our intent is very transparent with this pricing model change- we want to accelerate the adoption of Solaris and Sun Studio.
    Download Sun Studio 11 today:
    http://developers.sun.com/sunstudio/download
    Thanks!
    /kso
    PS. See what these 2 guys think of Sun Studio 11:
    (apologies to those who are unable to view real streams)
    http://webcast-east.sun.com/ramgen/archives/VIP-2199/VIP-2199_01_300.rm

    In reading the click-thru license, I came across the following in section 5(i):
    "Software may contain programs that perform automated collection of system data and/or automated software updating services. System data collected through such programs may be used by Sun, its subcontractors, and its service delivery partners for the purpose of providing you with remote system services and/or improving Sun's software and systems."
    Does this mean that the software will phone home to the 'mother ship' and report on my utilization? It seems to be worded in such a way as to be able to send my hardware configuration and other things that I may not want to share with Sun.

  • Sun Studio 12 CC compiler and gcc libraries

    Hi
    We are working on a porting project, Linux to Solaris. The software uses lots ot third party libraries. These libraries are compiled on Linux using gcc. They do not endorse Sun's CC compiler.
    Our project plans to use CC instead. Is it okay to build our software with CC (and fix all the portability issues we may have) and finally link it with all the third party libs created with gcc ? Is such kind of arrangement workable?
    Any advice would be really helpful.
    Thank you,
    Manish.

    Thank you for reporting the problem! I've submitted CR 6642662. It should be visible on web in a day or so.
    Boris

  • Sun Studio 12 Update1 and OpenMP

    Hi guys,
    I was using the Sun Studio 12 with OpenMP and everything was OK. So I decide to download the update 1 (which is OpenMP 3.0 full compliance), however I am getting linking error.
    Below is the message:
    Undefined first referenced
    symbol in file
    __mt_MasterFunction_cxt_ build/Debug/SunStudio_12.1-Solaris-x86/a1.o
    I look into my libmtsk.so libraries and I could see that __mt_MasterFunction_cxt_ really does not exist.
    So I believe this is a bug on Sun Studio 12 Update 1 that didn't install the last library. Anyway, I am try to find out where to get this library or any patch to it. I did try to get the patch 120754. However the site is pointing that I has no support contract. What is true just because I am a student, and I am just learning things for now...:-)
    Hope someone can help me with that..
    Thanks and Regards

    I cannot download any patch because I do not have any support contract.Last time I tried, Solaris patches were free, at least those related to compiler components.
    Byt the way, I rarely install the product myself, but I had an impression that Solaris version comes together
    with patches, which are intended to be installed right upon the installation.
    I'm sorry for the lost hours of precious time, but that seems to be more like your navigational error,
    rather than the intentional attempt from Sun to decieve you.
    Believe me or not, we made Sun Studio free because we want developers to use it, not because
    we hope to catch you offguard and cut some money.
    I should get opensolaris if I want a "linux like license and support"And that is true.
    If you do not like the way Solaris patches are managed (and, many think that it is a mess) you might better like Opensolaris.
    You also might want to try Linux version, it is as close to Solaris version functionality-wise as possible.
    I will just uninstall my sun studio 12 update 1 and go back to the sun studio 12 (where no patches are needed to run the openmp 2.5).Sun Studio 12 got no interface change thus no patches were needed to run OpenMP 2.5 as soon as you have libmtsk.so installed.
    Quite contrary, SS12u1 got OpenMP 3.0, which is substantially different to OpenMP 2.5 and that warranted interface change in runtime support
    (libmtsk.so).
    Trying to create "partial open source" things is not that good. First, it is not open source yet :-), it is just free.
    Then, if we would do partial thing (which is not that bad per se, surely depending on how you do it), that would definitely be written in caps all around.
    And broken functionality is definitely not the way Sun does its business.
    regards,
    __Fedor.

  • Compilation error while building boost 1_44_0 on Solaris (Sun Studio 10)

    Hi All, I am trying to build boost version 1_44_0 on Solaris.The Solaris box has Sun Studio 10 installed.
    The compiler details are
    bash-2.05$ CC -V
    CC: Sun C++ 5.7 2005/01/07
    I am using the following command to build boost libraries
    *bash-2.05$ bjam --build-dir=/export/home/dfdev/Boost_1_44_0/boost_1_44_0/tmp/build-boost toolset=sun stage*
    But i get the below compilation errors, not even one of the projects build
    sun.compile.c++ /export/home/dfdev/Boost_1_44_0/boost_1_44_0/tmp/build-boost/boo
    st/bin.v2/libs/iostreams/build/sun/release/stdlib-sun-stlport/threading-multi/fi
    le_descriptor.o
    Notice: The Early Access serial number will expire in -7 days.
    In order to purchase the product, visit http://www.sun.com/forte/buy.html
    or contact your Forte Tools reseller.
    "libs/iostreams/src/file_descriptor.cpp", line 352: Error: Could not find boost:
    :shared_ptr<boost::iostreams::detail::file_descriptor_impl>::shared_ptr(boost::i
    ostreams::detail::file_descriptor_impl*) to initialize pimpl_.
    "libs/iostreams/src/file_descriptor.cpp", line 355: Error: Could not find boost:
    :shared_ptr<boost::iostreams::detail::file_descriptor_impl>::shared_ptr(boost::i
    ostreams::detail::file_descriptor_impl*) to initialize pimpl_.
    "libs/iostreams/src/file_descriptor.cpp", line 360: Error: Could not find boost:
    :shared_ptr<boost::iostreams::detail::file_descriptor_impl>::shared_ptr(boost::i
    ostreams::detail::file_descriptor_impl*) to initialize pimpl_.
    "libs/iostreams/src/file_descriptor.cpp", line 380: Error: Could not find boost:
    :shared_ptr<boost::iostreams::detail::file_descriptor_impl>::shared_ptr(boost::i
    ostreams::detail::file_descriptor_impl*) to initialize pimpl_.
    "libs/iostreams/src/file_descriptor.cpp", line 385: Error: Could not find boost:
    :shared_ptr<boost::iostreams::detail::file_descriptor_impl>::shared_ptr(boost::i
    ostreams::detail::file_descriptor_impl*) to initialize pimpl_.
    "libs/iostreams/src/file_descriptor.cpp", line 393: Error: Using static_cast to
    convert from boost::iostreams::file_descriptor_flags to boost::iostreams::detail
    ::file_descriptor_impl::flags not allowed.
    6 Error(s) detected.
    "CC" -library=stlport4 -xO4 -mt -erroff=%none -KPIC -DBOOST_ALL_NO_LIB=1 -DB
    OOST_IOSTREAMS_DYN_LINK=1 -DBOOST_IOSTREAMS_USE_DEPRECATED -DNDEBUG -I"." -c -o
    "/export/home/dfdev/Boost_1_44_0/boost_1_44_0/tmp/build-boost/boost/bin.v2/libs/
    iostreams/build/sun/release/stdlib-sun-stlport/threading-multi/file_descriptor.o
    " "libs/iostreams/src/file_descriptor.cpp"
    ...failed sun.compile.c++ /export/home/dfdev/Boost_1_44_0/boost_1_44_0/tmp/build
    -boost/boost/bin.v2/libs/iostreams/build/sun/release/stdlib-sun-stlport/threadin
    g-multi/file_descriptor.o...
    sun.compile.c++ /export/home/dfdev/Boost_1_44_0/boost_1_44_0/tmp/build-boost/boo
    st/bin.v2/libs/iostreams/build/sun/release/stdlib-sun-stlport/threading-multi/ma
    pped_file.o
    Notice: The Early Access serial number will expire in -7 days.
    In order to purchase the product, visit http://www.sun.com/forte/buy.html
    or contact your Forte Tools reseller.
    "./boost/type_traits/is_array.hpp", line 41: Error: Multiple declaration for boo
    st::is_array.
    "./boost/type_traits/is_array.hpp", line 42: Error: Multiple declaration for boo
    st::is_array.
    "./boost/type_traits/is_array.hpp", line 43: Error: Multiple declaration for boo
    st::is_array.
    "./boost/type_traits/is_array.hpp", line 44: Error: Multiple declaration for boo
    st::is_array.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 95: Error: The type
    of specialized argument boost::mpl::aux::F<boost::mpl::aux::P1> is dependent on
    another argument.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 95: Error: Partial s
    pecialization parameter Tag is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 112: Error: Partial
    specialization parameter F is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 172: Error: The type
    of specialized argument boost::mpl::aux::F<boost::mpl::aux::P1, boost::mpl::aux
    ::P2> is dependent on another argument.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 172: Error: Partial
    specialization parameter Tag is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 189: Error: Partial
    specialization parameter F is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 254: Error: The type
    of specialized argument boost::mpl::aux::F<boost::mpl::aux::P1, boost::mpl::aux
    ::P2, boost::mpl::aux::P3> is dependent on another argument.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 254: Error: Partial
    specialization parameter Tag is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 271: Error: Partial
    specialization parameter F is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 339: Error: The type
    of specialized argument boost::mpl::aux::F<boost::mpl::aux::P1, boost::mpl::aux
    ::P2, boost::mpl::aux::P3, boost::mpl::aux::P4> is dependent on another argument
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 339: Error: Partial
    specialization parameter Tag is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 357: Error: Partial
    specialization parameter F is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 427: Error: The type
    of specialized argument boost::mpl::aux::F<boost::mpl::aux::P1, boost::mpl::aux
    ::P2, boost::mpl::aux::P3, boost::mpl::aux::P4, boost::mpl::aux::P5> is dependen
    t on another argument.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 427: Error: Partial
    specialization parameter Tag is not used in the arguments.
    "./boost/mpl/aux_/preprocessed/plain/full_lambda.hpp", line 445: Error: Partial
    specialization parameter F is not used in the arguments.
    "libs/iostreams/src/mapped_file.cpp", line 441: Error: Could not find boost::sha
    red_ptr<boost::iostreams::detail::mapped_file_impl>::shared_ptr(boost::iostreams
    ::detail::mapped_file_impl*) to initialize pimpl_.
    20 Error(s) detected.
    Am i missing something? I will appreciate your input's.
    Regards,
    solarisneo

    C++ 5.7 will not give good results building Boost.
    Support for boost began with C++ 5.9 (Sun Studio 12), but you will get better results using the current release, Sun Studio 12 update 1, and better still with the upcoming release, Oracle Solaris Studio 12.2.

  • Future support for C++0x in Sun Studio

    I've recently been having to defend my choice of using the sun studio compiler against several gcc advocates here in the office. The one reasonable issue they keep bringing up is when the upcoming C++0x (more like C++1x or even C++2x at the pace the standards committee is operating at) features will be available in complete fashion in sun studio. They say, and I have to begrudgingly agree, that judging by the amount of time it took studio to support boost (template templates, certain partial template specializations, etc), there could be a long delay between the release of gcc's C++0x support and that of studio's.
    I understand that many of the new features of C++0x, even from initial glance, appear to be quite complicated, especially lambda functors and their associated []/auto return types, variadac template parameters and class concept checking. In addition, I understand gcc has an unfair advantage so to speak since it is being used as the test bed for many of the committee proposal submitter's proof-of-concept implementations (the variadic template parameter feasibility implementation written for gcc comes to mind).
    Could a developer please assuage my fears and inform me that the studio team has a roadmap/timeframe in place to release a studio that fully supports the new language-level features in a reasonably competitive time frame? It apparently will be the responsibility of the STLPort team to essentially copy many of boost's libraries (shared_ptrs, random numbers, type_traits) and rename them and move them to the std namespace and also supply the new unordered<> containers, to name a few.
    I for one can't wait until boost::mpl, boost::fusion, boost::format and others are all reduced from 10's of 1000's of lines of pre-processor generated crufty template definitions to a single variadic template declaration. Also, I won't feel quite so willfully derelict to efficient code every time i bust out an std::for_each and drop in a boost::bind generated functor and instead can use a lambda function with the various efficiency gains ranging from direct referencing to the stack variables passed in as the closure arguments to the ability for the compiler to actually inline the body of the lambda function where appropriate.
    I'm in no way trying to accuse you compiler developers of being slow to implement features, but just would like to be assured that there is nothing to worry about and there is a plan and current work being done on the required features. I know it's still a couple of years off, but I personally can't wait to replace hundreds of lines of boost::bind() calls with their more efficent lambda equivalent, and in addition clean up interfaces that could have used boost::bind if it weren't for the unacceptable overhead introduced often executed blocks of code.
    Thanks,
    Chris Knight - Faithful sun studio user through at least 2 major name changes and since at lest when it was called Forte 4.2 and RougeWave and classicIO libraries roamed the earth in vast quantities.
    P.S. I truly fear that the other 3 major compilers (gnu, intel, ms) will be out the door with C++0x in around the same time and boost will then willingly drop support for the sun compiler if it doesn't support the required language features at that time as they had no problem not supporting studio at all until Studio 12 so I'm sure as soon as the 3 compilers they run nightly tests with support it, they'll be just as eager to
    make use of the new features as I am.
    This leaves someone who has based their entire system on Solaris + SunStudio + Boost in a potentially undesirable situation. Solaris is far too stable and Linux to ever-changing to ever consider Linux as a platform for critical systems yet the idea of running g++ on Solaris w/ gcc's propensity to change their ABI on a weekly basis gives me immediate heartburn.
    Thanks again.

    You raise some very good points, and believe me, we are even more aware of them than you are!
    Short answer: We are planning to bring out a compiler conforming to C++0X in a timely fashion.
    Longer answer:
    Right now, we are working on providing binary compatibility with g++ as an option in the next compiler release. When we are done, you will be able to use g++ headers with Sun C++, and link the code with binaries created by g++. The first implementation will be on Linux. (Which versions of g++ and which versions of Linux? Stay tuned.)
    Implementing all the new features of C++0X will require a re-design of parts of the compiler front end. The current compiler organization does not support "concepts", for example. (We've been looking for an excuse to re-design the front end for a while, and C++0x is not just an excuse -- it's a requirement.) With the g++ ABI work done, we'll ready to start the re-design, and begin to implement C++0x features.
    We won't release an official (stable, fully-supported) product with C++0X features until the standard is final. Until then, any feature could change in unpredictable ways. We got caught by that problem with C++ 4.2 and C++98 -- we implemented what we thought were final features that changed dramatically after we released the compiler. We won't do that again. Compiler stability is one of our most important considerations.
    Beginning some time next year, we expect to have Express releases with some C++0X features. Express releases are our way of providing compilers with experimental features that might not be stable yet. It gives our customers a chance to try them out and provide feedback before they become part of a stable release. That is to say, a feature flagged as experimental is subject to change, and compatibility with other Express or official releases is not guaranteed. We can therefore fix bugs and catch up with late changes in the Standard as necessary.
    We have not yet done all the planning for our C++0X compiler, so I can't give you any estimates about specific feature availability and time frames. When we are farther along, we'll post the road map on a public site, and I'll announce it here.
    Steve Clamage
    Sun C++ Team

  • Using boost::thread with Sun Studio C++ gives error

    Hi,
    I'm trying to compile a code which uses the boost thread library, but I get the following error:
    CC -library=stlport4 -features=tmplife -features=tmplrefstatic -mt -c -o t t.cpp
    "/opt/boost/include/boost/thread/pthread/mutex.hpp", line 142: Error: The function "pthread_mutex_timedlock" must have a prototype.
    "/opt/boost/include/boost/thread/pthread/mutex.hpp", line 142: Error: The function "pthread_mutex_timedlock" must have a prototype.
    "/opt/boost/include/boost/thread/detail/thread.hpp", line 344: Error: boost::thread::thread(boost::thread&) is not accessible from boost::move(boost::detail::thread_move_t<boost::thread>).
    "/opt/boost/include/boost/thread/pthread/recursive_mutex.hpp", line 179: Error: The function "pthread_mutex_timedlock" must have a prototype.
    "/opt/boost/include/boost/thread/pthread/recursive_mutex.hpp", line 179: Error: The function "pthread_mutex_timedlock" must have a prototype.
    5 Error(s) detected.
    make: *** [t] Error 5the sample source code in question here just a single include:
    #include <boost/thread.hpp>This is with boost 1.40.0. I wonder what I'm doing wrong..
    Akos

    OK, I tried latest version of CC from Sun Studio 12 update 1 and can say that
    - the error about constructor not being accessible is Sun C++ compiler "feature" (only called feature because it existed for so long) that allows binding of rvalues to non-const references; this "feature" will probably be turned off in the next release. It can't be changed in a patch because client's code might rely on it.
    - the other errors are also not Boost-specific: the result of incompatibility of Linux headers and Sun C++ compiler; more thorough investigation is due, but in the past we had several problems like this. This particular can be solved by adding
    -D_GNU_SOURCE to compile line.

  • Sun Studio 12 in SXDE 9/07 VMWare image

    Having a terrible time getting Sun Studio 12 to work in SXDE 9/07 VMWare image.
    My main problem is that SunStudio refuses to compile anything. Firstly I couldn't get rid of "Could not successfully run the cc compiler to configure the built-in source file parser..." messgage. I've tried putting /opt/SUNWspro/bin in the PATH ahead of everything else, as has been suggested in a few other Sun Studio forums, but that doesn't seem to help. I've modified this in the .profile and restarted Sun Studio, even logged out and back in again, and the PATH setting is there, but Studio keeps giving me that message.
    Next, when I press F5 for Welcome project there's a flashing Stop sign in the bottom right corner pointing to exception dump in messages.log
    IOException java.io.IOException: Cannot run program "CC": error=12, Not enough space
    *********** Exception occurred ************ at 6:37 AM on Oct 14, 2007
    java.io.IOException: Cannot run program "/opt/netbeans-5.5.1/cnd1/bin/stdouterr.sh" (in directory "/export/home/ted/SunStudioProjects/Welcome"): error=12, Not enough space
    Anybody have any tips? I can't believe this isn't documented somewhere more fully, since this is right out of the box (figuratively speaking).

    Could you please check the SWAP size on you SXDE.
    Looks like the problem is here.
    For example, on my machine there are only 512M of SWAP.
    bash-3.00$ /usr/sbin/swap -lh
    swapfile dev swaplo blocks free
    /dev/dsk/c0d0s1 102,1 4K 512M 504M
    And, as mention in Sun Studio System Requirements (http://docs.sun.com/source/820-2973/release_notesML.html#SystemReqs),
    Swap space should be minimum 1Gb(Recommended: 2 to 4 Gbytes).
    You can expand swap on your machine this way:
    bash-3.00$ su -
    Password:
    Sun Microsystems Inc. SunOS 5.11 snv_70b October 2007
    bash-3.00# mkfile 512m /export/home/moreswap
    // Or you can select swap file where you have enough space.
    bash-3.00# /usr/sbin/swap -a /export/home/moreswap
    bash-3.00# /usr/sbin/swap -lh
    swapfile dev swaplo blocks free
    /dev/dsk/c0d0s1 102,1 4K 512M 499M
    /export/home/moreswap - 4K 512M 512M
    After you increase SWAP space as required, there should not any exceptions.

  • Sun Studio is unable to find a supported version of Java ...?

    Gentlemen I need your assistance, I'm trying to install SunStudio, and I get this error.
    # /opt/sun/sunstudioceres/bin/sunstudio
    Sun Studio is unable to find a supported version of Java.
    Sun Studio supports Java version 1.5.0_03 and newer and looks for a valid Java installation in the following order:
    1) Location specified with --jdkhome command line option
    2) In PATH environment variable
    3) At /usr/jdk/latest location, if exists
    4) At /usr/java location, if exists
    5) At /usr location, if exists.
    I'm using FC9, and I have installed the following in Java
    # rpm -qa | grep java
    libgtk-java-2.8.7-2.fc6.i386
    sun-javadb-demo-10.4.1-3.1.i386
    cairo-java-1.0.5-3.fc6.i386
    sun-javadb-common-10.4.1-3.1.i386
    java_cup-0.10-0.k.6jpp.2.i386
    libgconf-java-2.12.4-5.fc6.i386
    sun-javadb-core-10.4.1-3.1.i386
    java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.110.i386
    libvte-java-0.12.1-5.fc6.i386
    sun-javadb-javadoc-10.4.1-3.1.i386
    libgnome-java-2.12.4-3.fc6.i386
    sun-javadb-client-10.4.1-3.1.i386
    gcc-java-4.3.0-8.i386
    libglade-java-2.12.5-3.fc6.i386
    glib-java-0.2.6-3.fc6.i386
    java-1.5.0-gcj-1.5.0.0-21.fc9.i386
    sun-javadb-docs-10.4.1-3.1.i386
    Can somebody help me to see what I'm missing, and how can I point to the right direction?

    You have GNU Java 1.5.0. In order to use IDE and Performance Analyzer you need to install SUN Java 1.6.0.
    [http://developers.sun.com/sunstudio/downloads/ssx/express_November2008.html|http://developers.sun.com/sunstudio/downloads/ssx/express_November2008.html] :
    The Sun Studio package installer, IDE, and Performance Analyzer require Java SE Development Kit (JDK) 6 Update 3 or higher, which can be downloaded from the [Java SE Downloads site|http://java.sun.com/javase/downloads/?intcmp=1281] if the required version is not available on your target platform.

  • Sun Studio Express February 2008 - Now Available

    Howdy,
    A new build, February 2008, of Sun Studio Express, which offers preview builds of the next version of Sun Studio software for Solaris and Linux platforms, is now available:
    http://developers.sun.com/sunstudio/downloads/express/index.jsp
    Highlights in this build include:
    * Improved IDE based on NetBeans IDE 6
    * Project D-Light: app profiling that includes Dynamic Tracing (DTrace) instrumentation
    * Updates to the C, C++, & Fortran compilers
    * Improved x86 and SPARC optimizations
    * Latest bug fixes
    For more details, check out the README:
    http://developers.sun.com/sunstudio/downloads/ssx/readme.html#2
    As always, let us know what you think via our forums:
    http://forum.java.sun.com/category.jspa?categoryID=113
    ...and bug (defect) and Request for Enhancement (RFE) facility:
    http://bugs.sun.com/services/bugreport/index.jsp
    Finally, check out the Sun Studio community site on the Sun Developer Network:
    http://developers.sun.com/sunstudio/
    ...and keep up to date by subscribing to our RSS feed:
    http://developers.sun.com/rss/sunstudio.xml
    Thanks!
    /kso

    Hi,
    we are currently using SunStudio 12. I have noticed that early access product, SunStudio Express, Feb2008. It seems that new features coming from NetBeans 6.0 have contributed to SunStudio IDE. I prefer to use SunStudio Express IDE. But i have also noticed that sun CC compiler version is also different. Actually it is no surprise, since SunStudio is a complete product composed of compilers, tools and IDE.Now, i am quite doubtful whether we should use SunStudioExpress. That's why i want to learn when official new release for SunStudio will be announced.
    Though i have searched internet, i couldn't notice any news about the next official release of Sun Studio( Sun Studio 13 ). When will this early release( SunStudio Express, Feb 2008 ) be released as SunStudio13? What is the release roadmap of SunStudio?

  • How to generate gdb compatible .o for CMT using Sun Studio C compiler?

    Hello,
    we've been working on a joint project for telco bearer plane applications on CMT.
    We started the project using gcc for Sparc and we switched to Sun Studio compiler when we hit some bugs in gcc (optimized mode was not completely stable). The switch took a few weeks due to syntax differences and toolchain option changes.
    With Sun Studio we got a double digit percent performance improvement, so Sun Studio proved more stable and faster than gcc.
    To debug programs we require gdb, because the Telco customers are more familiar with it. The problem is that Sun Studio generates object files which are not compatible with gdb.
    Our main requirement is to be able to generate gdb compatible object files using Sun Studio compiler.
    We checked this link:
    http://cooltools.sunsource.net/gcc/ReleaseNotes.html
    but this seems to be a variant of gcc. At this point we cannot switch compiler because of the performance and stability issues mentioned above and because it will take a few weeks to months to switch.
    We have two questions:
    1) Is there a way to generate gdb compatible object files using Sun Studio 11?
    2) If not, is this funcionality going to be available in a future release of Sun Studio and what is the time frame?
    Thanks for your help.
    Marco Zandonadi
    Teja Technologies

    The undefined symbol is in the C++ runtime support library that is part of Solaris. Probably you have an out-fo-date version of the libraries.
    You can get current patches from the Sun Studio patch page:
    http://developers.sun.com/prodtech/cc/downloads/patches/index.html
    From the page for your version of WorkShop or Sun Studio, select the C++ Runtime Library patch for the version of Solaris that your are running. While you are at it, you can get the current compiler patches as well.
    If patching the runtime libraries does not fix the problem, let me know, and also show the exact command lines that you use for compiling and linking the program.

  • General and specific questions on the applicability of Sun Studio 11

    Hi. In an e-mail letter from Sun Microsystems I read about Sun Studio 11 to "utilize its record-setting parallelizing compilers." From this message I was attracted by the possibility of adding something like parallel processing, not by changing the processor (hardware), but by adding Sun-Studio-11 software to a Linux operating system. Now I already have a Fortran compiler, the Intel Fortran Compiler for Linux, which is free and can handle Cray-style pointers, a feature hard to find in a free Fortran compiler.
    1a. So for the most basic of questions, without having parallel-processing hardware, just an ordinary processor [a 1-GigaHertz (GHz) Advanced MicroDevices Duron central processing unit, in my case], is it possible to have parallel processing and thereby increase one's computing speed by installing Sun Studio 11 in a Linux operating system?
    1b. If so, by what factor could one expect the speed of computation to increase over not having Sun Studio 11 installed? (If the gain in speed is dependent on the type of computations being performed, I imagine possibly using a Fortran code to perform numerical calculations using and perhaps searching for minima or maxima in a two-or-more-dimensional surface. So please give me an idea of the sort of gain in speed one could expect for these two types of activites, calculations using formulas and searches for minima and maxima among already-computed quantities.)
    1c. Again if so, how could one just by adding software have parallel processing without two or more hardware processors? In other words, what is the basic working principle of the software to make the simultaneous performance of multiple tasks (multitasking or parallel processing) possible?
    2a. Does Sun Studio 11 include a Fortan compiler?
    2b. If so, must one use it to have parallel processing with Sun Studio 11?
    2c. Or will the Intel Fortran Compiler for Linux work with Sun Studio 11 to have a parallel processing capability?
    Concerning hardware requirements I read that Sun Studio 11 requires a minimum of 512 MegaBytes (MB) of memory, presumably Random Access Memory (RAM). My Hewlett-Packard, ZE1110, Pavilion, notebook computer has 256 MB of RAM, but is expandable to a maximum of 512 MB of RAM. So in this respect it is in principle at least technically possible for me to meet the minimum system requirement for Sun Studio 11 with my computer, if I choose to increase its RAM. Somehow accommodating the cost of such a RAM addition, including whether one may have to buy two, matching, 256-MB RAM modules or just presumably one additional 256-RAM module, is another requirement. But before spending money for such an upgrade, one should first thoroughly investigate other matters to determine if other things are going to work and to determine what gain, if any, one could expect in computing speed with Sun Studio 11 and an additional 256 MB of RAM; then decide, based on such data, whether the purchase is personally worth the money or not. That's one motivation behind this posting; another motivation is for me to learn some things.
    Lastly I would like to here thank whoever was thoughtful enough to provide the Sun Download Manager (SDM) 2.0, which allows the pausing and resumption of the 207-MB download studio11-lin-x86.tar.bz2 for the Linux version of the Sun Studio 11! Using a slow, dialup, Internet connection like mine having a maximum speed of 28.8 kilobits/second, this makes it possible to download that file over a number of Internet sessions instead of having to have an uninterrupted, 19-or-more-hour Internet session. Besides the invconvenience of tying up one's telephone line for that long a time, it might be even be difficult to have such an uninterrupted Internet session for that long a time. I have at least started such a download using the SDM 2.0 potentially over multiple Internet sessions. Whether or not I carry it out to completion could depend on whether everything looks good with Sun Studio 11 for my particular situation. Thanks in advance for your help.

    Thanks for both of your postings here. I'm mostly trying to learn something here.
    From Maxim Kartashev: "For example, if one thread (or process, or lwp) frequently performs an I/O operation, then the other thread (process, lwp) can utilize processor resources to perform, say, some computations while first one waits for operation to complete."
    I think I might understand what you meant above. I guess lwp in the above context stands for light-weight process. And I think you may be talking about a potential gain in speed with just one, ordinary processor. I guess you meant that one program, or perhaps group of programs, could perform input/output processes at the same time it is performing calculations because different parts of the processor are being used in these two groups of processes. Then on "while first one waits for operation to complete" I guess you meant that if the input/output operations finish before the computations finish, then thread 1 that was performing the input/output operations will have to wait until the current computations ordered by thread 2 are complete before thread 1 can utilize the computational resources for its own computations; i.e., two threads can't use the same computational resources of an ordinary processor at the same time. How is my thinking so far, Maxim, right, partly right, or all wrong?
    Now if the above thinking of mine is right, then it appears that one could have some gain in speed doing things like you suggest with just one, ordinary processor. And if so, I imagine that the gain could be a maximum of a factor of two for a program that requires spending as much time in input and output as it does in computation; i.e., keeping both the computational and input/output resources working all of the time without the input/output resources waiting on the computational resources or vice versa. How is my thinking here?
    If the above thinking is correct, just for purposes of discussion with just one, ordinary processor, not a dual processor, and a program which does nothing but computations there would be no gain in speed using Sun Studio 11 and a Fortran compiler over not using Sun Studio 11. In other words, to increase the speed of computation one would have to buy a faster computer, buy parallel processing hardware for an existing computer and use parallel-processing software, or somehow figure out how to harness two or more computers to work for you at the same time with instructions from one piece or perhaps set of pieces of code set up for parallel processing using two or more different computers. The latter case would be a computer analogue or "two 'heads' are better than one," not human heads, but computers. How is my thinking here?
    Here I am still assuming that it is possible for one processor to be used to do two different kinds things at once. However, I don't see how one Fortran program could instruct two things to be done at once. This is because I have not seriously studied parallel processing, I suppose. That is I am used to a sequential set of instructions that proceed from top to botton down the lines of code; i.e., one instruction or line of code can't be executed until the line of code before it has been completely executed. That is the computing "world" with which I am familiar. So how about someone here teaching me with an example of parallel-processing Fortran code how parallel processing works, explaining what instruction or group of instructions tells the computer to execute input and computational instructions at the same time?
    Based on the encouraging information from one or more other people I have been able to use the Intel Fortran for Linux 8.1.024, if I remember correctly, in a computer with a 1-GigaHertz (GHz), Advanced MicroDevices (A.M.D.), Duron Processor. So this is at least one case where it is not essential to have an Intel processor to use the Intel Fortran Compiler for Linux 8.1.024.
    Is the Sun Fortran compiler free for personal use? And can it handle Cray-style pointers?

  • Sun Studio 11 do not parse make output and create link to file?

    Hi,
    Running Sun Studio 11 and can only get file links in the output window when I run a make command that uses CC -g (debug option). We have integrated other tools into our make system (flexlint, cppUnit..) and even though we make sure that the syntax is exactly the same as the compiler output and matches regular expression under tools->options->building->make settings->error expression, it doesn't work. Why do you have to debug compile to get sun studio to create a file link in the output window? Doesn't sun studio just parse the text from the make command?
    example of flexlint output for which no link is created:
    "/vobs/project/oss/fm/fm4/fm-fmalib/fmbal/fmaaulib/src/FMA_List.cc", line 440: Error 84: sizeof object is zero or object is undefined'�
    example of make debug output for which we do get a link:
    "/vobs/project/oss/fm/fm4/fm-fmalib/fmbal/SunOS5.10/inc/FMA_alarm_record.hh", line 1310: Warning (Anachronism):Info "static" is not allowed and is being ignored.
    Regards,
    Ola

    I'd second Maxim's suggestion: try NetBeans 5.5 with C/C++ Development Pack. The official release of NetBeans C/C++ Development Pack 5.5 has happened a few days ago. You can download it from
    http://www.netbeans.info/downloads/all.php?b_id=2284
    Some of the changes between the beta3 build and FCS are:
    * Significant performance improvements in the code parser resulting in faster results in the Class View and Code Completion
    * Programs now run in an external terminal (system dependent) by default. This allows better input control
    * Significant performance improvement in the debugging module
    * Significant functionality improvement in the debugging module
    * New project type "C/C++ Project From Existing Code" which simplifies creating a project from existing code
    * Macro support in code completion
    * Hyperlink navigation for macro usages and #include directives
    * Reformat code
    * Code folding
    * Code completion
    All these features will appear in next Sun Studio release, so you can
    consider NetBeans C/C++ Development Pack 5.5 as a preview of new
    Sun Studio IDE.

  • Question about script in sun studio creator2 and netbean6.1

    Hi, I have a quick question
    I have started a project by using sun studio creator2, the main page contains following script, it works perfectly fine.
    <script type="text/javascript">
    function getUser()
    var net = new ActiveXObject("wscript.network");
    document.getElementById('form1:hiddenField1').value = net.UserName;
    </script>
    And then I bind the field to a managed bean's property.
    However, because I need to use netbean6.1 to continue this project. I find previous script doesn't work any more. (I can get net.UserName, but I can't store the value to hiddenfield)
    I checked woodstock documentation, and guess following will do the same job
    <webuijsf:script>
    function getUser() {
    var net = new ActiveXObject("wscript.network");
    var domNode = document.getElementById('_form1:hiddenField1');
    domNode.setProps({value:net.UserName});
    </webuijsf:script>
    Once run the getUser() function, I got an "object doesn't support this property or method".
    It looks like IE security level setting problem. If it is so, because it is company setting. There is nothing I can do here.
    Any one knows workaround to store the retrived userName into hiddenfield?
    Thanks in advance!!!

    any help is appreciated

  • BOOST and Sun Studio 10

    C++ 5.7 in Sun Studio 10 now compiles most of BOOST 1.32.0, when the compiler is updated with the current patches from
    http://developers.sun.com/prodtech/cc/downloads/patches/ss10_patches.html
    Two known bugs remain, and should be fixed in a future patch.
    Some of the BOOST compilation failures are due to errors in the BOOST configuration for Sun C++. We have submitted corrections to the BOOST site, and we hope all of them will be included in version 1.33.0.
    In the mean time, you can apply the following corrections to version 1.32.0:
    1. Get this correction from the BOOST bug tracker:
    http://sourceforge.net/tracker/index.php?func=detail&aid=1155439&group_id=7586&atid=107586
    2. Also get this correction from the BOOST bug tracker:
    http://sourceforge.net/tracker/index.php?func=detail&aid=1165980&group_id=7586&atid=107586
    3. Edit build.sh according to these diffs: *** build.sh.orig     Fri Mar 18 06:09:44 2005
    --- build.sh     Fri Mar 18 06:41:07 2005
    *** 150,160 ****
          sunpro)
    !     if test -r /opt/SUNWspro/bin/cc ; then
              BOOST_JAM_TOOLSET_ROOT=/opt/SUNWspro/
          fi
    !     if test -r $BOOST_JAM_TOOLSET_ROOTbin/cc ; then
    !         export PATH=$BOOST_JAM_TOOLSET_ROOTbin:$PATH
          fi
          BOOST_JAM_CC=cc
    --- 150,161 ----
          sunpro)
    !     if test -z "${BOOST_JAM_TOOLSET_ROOT}" -r /opt/SUNWspro/bin/cc ; then
              BOOST_JAM_TOOLSET_ROOT=/opt/SUNWspro/
          fi
    !     if test -r ${BOOST_JAM_TOOLSET_ROOT}bin/cc ; then
    !         PATH=${BOOST_JAM_TOOLSET_ROOT}bin:${PATH}
    !         export PATH
          fi
          BOOST_JAM_CC=cc
          ;;

    Here is a small but complete test program, together with the command line of the compiler. This is the patch level of the compiler we use here:
    CC: Sun C++ 5.7 Patch 117830-02 2005/03/30Test program (graph_test.cpp):
    #include <iostream>                  // for std::cout
    #include <utility>                   // for std::pair
    #include <algorithm>                 // for std::for_each
    #include <boost/graph/graph_traits.hpp>
    #include <boost/graph/adjacency_list.hpp>
    #include <boost/graph/dijkstra_shortest_paths.hpp>
    using namespace boost;
    int main(int,char*[])
      enum { A, B, C, D, E, N };
      const int num_vertices = N;
      const char* name = "ABCDE";
      typedef adjacency_list<vecS, vecS, bidirectionalS> Graph;
      Graph g(num_vertices);
      typedef graph_traits<Graph>::vertex_iterator vertex_iter;
      std::pair<vertex_iter, vertex_iter> vp;
      vp = vertices(g); /** Error **/
      return 0;
    }Command line:
    CC -I./include/boost -v graph_test.cpp
    ###     command line files and options (expanded):
    ### -I/export/rpms/401/tools/inst/include/boost -v graph_test.cpp
    ### CC: Note: NLSPATH = /export/home2/SUNs10/SUNWspro/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/export/home2/SUNs10/SUNWspro/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
    /export/home2/SUNs10/SUNWspro/prod/bin/ccfe -y-o -ygraph_test.o -I/export/rpms/401/tools/inst/include/boost -y-fbe -y/export/home2/SUNs10/SUNWspro/prod/bin/fbe -y-xarch=generic -y-verbose -O0 -ptf /tmp/00299%1.%2 -ptx /export/home2/SUNs10/SUNWspro/prod/bin/CC -ptk "-I/export/rpms/401/tools/inst/include/boost -v  -xs " -D__SunOS_5_8 -D__SUNPRO_CC=0x570 -Dunix -Dsun -Dsparc -D__sparc -D__sparcv8plus -D__unix -D__sun -D__BUILTIN_VA_ARG_INCR -D__SVR4 -D__SUNPRO_CC_COMPAT=5 -D__SUN_PREFETCH -xdbggen=no%dwarf2+stabs -y-s -xdbggen=incl -y-xmemalign=8i -I-xbuiltin -xldscope=global -instlib=/export/home2/SUNs10/SUNWspro/prod/lib/libCstd.a -I/export/home2/SUNs10/SUNWspro/prod/include/CC/Cstd -I/export/home2/SUNs10/SUNWspro/prod/include/CC -I/export/home2/SUNs10/SUNWspro/prod/include/CC/rw7 -I/export/home2/SUNs10/SUNWspro/prod/include/cc -y-comdat graph_test.cpp -s /tmp/ccfe.00299.0.s >&/tmp/ccfe.00299.1.err
    rm /tmp/ccfe.00299.0.s
    /export/home2/SUNs10/SUNWspro/prod/bin/stdlibfilt -stderr </tmp/ccfe.00299.1.err
    "graph_test.cpp", line 22: Error: Could not find a match for boost::vertices<boost::T>(boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::no_property, boost::no_property, boost::no_property, boost::listS>) needed in main(int, char**).
    1 Error(s) detected.
    rm /tmp/ccfe.00299.1.err
    rm graph_test.oAny help would be greatly appreciated! If you need any more information, please let me know.
    Thanks in advance,
    Andreas

Maybe you are looking for