No separate compilation & linking of multithreaded translation units?

Solaris 10 Multithreaded Programming Guide, Chapter 8 (http://docs.sun.com/app/docs/doc/816-5137/compile-94611?a=view) states:
"The Sun Studio C compiler (cc) provides the -mt option to compile and link multithreaded code. The -mt option assures that libraries are linked in appropriate order, and is intended to be used to compile and link in a single step.
If you compile with -mt and link in a separate step, you might get unexpected results. If you compile one translation unit with -mt, you must compile all units of the program with -mt."
The Guide does not provide a way to compile and link in separate steps.
The Guide continues to show how to do Compiling and Linking in the POSIX Threads Environment:
cc -mt [ flag ... ] file... -lpthread [ library... ]
What does this really mean? Does this mean that there is no way to compile a translation unit without linking, and then compile and link all the units to generate an executable? If I want to do the following:
% cc -mt -c file1.c
% cc -mt -c file2.c
% cc -mt main.c file1.o file2.o -lpthreadI would get unexpected results?
Should I do this instead?:
% cc -mt -c file1.c -lpthread
% cc -mt -c file2.c -lpthread
% cc -mt main.c file1.o file2.o -lpthreadIs this what Sun means by "compile and link in a single step"?
Or must I do this?:
% cc -mt main.c file1.c file2.c -lpthreadOn the other hand, note that the Guide also says "If you compile one translation unit with -mt, you must compile all units of the program with -mt." It seems to imply that one can compile a unit without linking. Otherwise it would have said "If you compile and link one translation unit with -mt and -lpthread, you must compile and link all units of the program with -mt and -lpthread." I am confused.
The Sun Studio 12: C User's Guide Appendix B (http://docs.sun.com/app/docs/doc/819-5265/bjapp?a=view) says:
"B.2.46 -mt
Compile and link for multithreaded code.
This option passes -D_REENTRANT to the preprocessor and passes -lthread in the correct order to ld.
The -mt option is required if the application or libraries are multithreaded. ...
Modules that are compiled with -mt must also be linked with -mt. ...
If you compile one translation unit with -mt, compile all units of the program with -mt."
It does not say anything about -mt's compiling and linking in one single step. The words "compiled with -mt must also be linked with -mt" seems to suggest that one can compile and link separately.
The Solaris 9 Multithreaded Programming Guide, Chapter 7 (http://docs.sun.com/app/docs/doc/806-6867/6jfpgdcob?a=view) suggests a different way (not -mt) to compile and link a multithreaded program - using a -D_POSIX_C_SOURCE option. There is no "single step" requirement. Can one still use this approach to compile and link translation units in separate steps?:
% cc -c file1.c -D_POSIX_C_SOURCE=200112L
% cc -c file2.c -D_POSIX_C_SOURCE=200112L
% cc main.c file1.o file2.o -D_POSIX_C_SOURCE=200112L -lpthreadAnd as an aside, I notice that there is a difference between the Solaris 9 Guide and the Solaris 10 Guide on the position of the -lpthread flag in the cc command line. The former, in the "Linking With libthread or libpthread" section, says: "To use libpthread, specify -lpthread before -lc on the ld command line, or last on the cc command line." So I guess if there is a -lm for example, then -lm precedes -lpthread on the cc command line. The latter, as shown in the first paragraph above, suggests that -lpthread precede -lm: cc -mt [ flag ... ] file... -lpthread [ library... ]
I am not sure whether Sun really means that the position of -lpthread should be different between Solaris 9 and 10.

clamage45 wrote:
The C Users Guide and Solaris MT Guide are separately maintained. The part you quote might have been true once long ago, and the material never reviewed.
The C Users Guide is reviewed for every release, and we try to keep it correct and up to date.So, you have some "insider information" because apparently you work for Sun. But this Multithreaded Programming Guide also appears to be revised for every release of the Solaris OS - at least between Sol 9 and Sol 10. As I compared them in my original post, they propose different approaches to compiling a multithreaded program. That is, the Multithreaded Programming Guide was updated for Solaris 10 in this regard. Therefore, it does not appear to me that the Multithreaded Programming Guide is not accurate because it might have never been reviewed and got outdated.

Similar Messages

  • Help in compiling/linking a DEVICE DRIVER in SOLARIS10 x86

    hello!
    PROBLEM:
    ++++++++++++++++++++++++++++++++++
    i need assistance in compiling/linking a video capture
    driver (bt848x) (http://bt848x.sourceforge.net/) for
    solaris 10 x86.
    the driver uses the /usr/lib/libc.a (specifically the _xtoll.o)
    which, if im not mistaken, is not available in solaris 10
    anymore. so how am i going to compile it?
    BACKGROUND:
    ++++++++++++++++++++++++++++++++++
    the original compile/link code in the makefile is:
    /usr/ccs/bin/ld -o bt848x -r bt848-cards.o bt848-driver.o
    bt848-kern.o i2c.o tuner.o sound-tda9875.o
    sound-msp3400.o _xtoll.o
    i modified it to:
    /usr/ccs/bin/ld -o bt848x bt848-cards.o bt848-driver.o
    bt848-kern.o i2c.o tuner.o sound-tda9875.o
    sound-msp3400.o -L/usr/lib -lc
    (NOTE: i removed the -r and _xtoll.o; and added
    -L/usr/lib -lc)
    the output was:
    Undefined ____________ first referenced
    symbol ______________ in file
    mod_install bt848-kern.o
    delay bt848-cards.o
    ddi_get_instance bt848-kern.o
    nodev bt848-kern.o
    ddi_create_minor_node bt848-kern.o
    ddi_regs_map_free bt848-kern.o
    pci_config_getw bt848-driver.o
    pci_config_getb bt848-driver.o
    ddi_soft_state_zalloc bt848-kern.o
    ddi_dma_unbind_handle bt848-kern.o
    kmem_alloc i2c.o
    cv_broadcast bt848-driver.o
    ddi_remove_intr bt848-kern.o
    ddi_get_soft_state bt848-kern.o
    mod_driverops bt848-kern.o
    ddi_get_lbolt bt848-cards.o
    mutex_tryenter bt848-kern.o
    ddi_get_iblock_cookie bt848-kern.o
    nochpoll bt848-kern.o
    ddi_copyin bt848-kern.o
    mod_info bt848-kern.o
    ddi_remove_minor_node bt848-kern.o
    nulldev bt848-kern.o
    ddi_dma_sync bt848-driver.o
    ddi_dma_addr_bind_handle bt848-kern.o
    mod_remove bt848-kern.o
    ddi_prop_lookup_int_array bt848-cards.o
    _pagesize                           bt848-driver.o
    ddi_prop_op bt848-kern.o
    ddi_dma_free_handle bt848-kern.o
    ddi_set_driver_private bt848-kern.o
    cv_wait_sig bt848-kern.o
    ddi_intr_hilevel bt848-kern.o
    ddi_regs_map_setup bt848-kern.o
    pci_config_teardown bt848-driver.o
    ddi_dma_mem_alloc bt848-kern.o
    ddi_copyout bt848-kern.o
    cmn_err bt848-cards.o
    ddi_dma_alloc_handle bt848-kern.o
    ddi_prop_exists bt848-cards.o
    cv_init bt848-kern.o
    pci_config_setup bt848-driver.o
    cv_destroy bt848-kern.o
    timeout sound-msp3400.o
    untimeout sound-msp3400.o
    devmap_umem_setup bt848-kern.o
    ddi_prop_get_int bt848-kern.o
    uiomove bt848-kern.o
    kmem_free i2c.o
    ddi_add_intr bt848-kern.o
    ddi_report_dev bt848-kern.o
    getminor bt848-kern.o
    mutex_exit bt848-driver.o
    ddi_prop_free bt848-cards.o
    ddi_soft_state_fini bt848-kern.o
    ddi_soft_state_free bt848-kern.o
    ddi_soft_state_init bt848-kern.o
    mutex_enter bt848-driver.o
    ddi_mem_putl bt848-cards.o
    ddi_mem_getl bt848-cards.o
    drv_usecwait bt848-cards.o
    drv_usectohz bt848-cards.o
    ddi_dma_mem_free bt848-kern.o
    ld: fatal: Symbol referencing errors. No output written to bt848x
    QUESTIONS:
    ++++++++++++++++++++++++++++++++++
    1.) What other libraries do i need to include so that
    there would no more "symbol referencing errors" ???
    2.) Is my linking code correct?
    /usr/ccs/bin/ld -o bt848x bt848-cards.o bt848-driver.o
    bt848-kern.o i2c.o tuner.o sound-tda9875.o
    sound-msp3400.o -L/usr/lib -lc
    i mean, is it ok to build a driver with dynamic libraries?
    or the device driver should always be statically linked?
    COMPUTER SPECS:
    ++++++++++++++++++++++++++++++++++
    Solaris 10 (6/06 release)
    SunOS 5.10 Generic_118844-26 i86pc i386 i86pc
    Pentium 4 - 1.4GHz
    1GB RDRAM
    32 BIT
    Video Capture Card: PixelView PV-BT878P+FM.RC (rev.9F)
    thanks!!!
    -kllc

    i think i already found the answers to my questions
    (i partially read SUN docs WRITING DEVICE DRIVER in
    http://docs.sun.com/app/docs/doc/816-4854 specifically
    the BUILDING A DEVICE DRIVER) =)
    i used:
    /usr/ccs/bin/ld -o bt848x -dy -r bt848-cards.o bt848-driver.o
    bt848-kern.o i2c.o tuner.o sound-tda9875.o sound-msp3400.o
    -L/usr/lib -lc
    (NOTE: i used the flags -dy -r -L/usr/lib -lc)
    so far, the TV-TUNER is working hehehehe!!
    any comments/suggestions/tips from other people are still welcome!
    thanks!!
    -kllc

  • How do we link the central organizational unit and purchase organization i

    hi friends
    How do we link the central organizational unit and purchase organization in SUS configuration? 
    regards
    vinaykrishna

    The workflow process is associated to the transaction you select by parameters in the function call.
    The Responsibility 9e.g. employee self service) is linked to a menu. The menu contains (amongst other things) functions. If the function is associated to a menu prompt, then when the user clicks on the prompt (e.g. Change Job) the function is invoked. When the function is invoked, it calls the workflow described in the function call.
    The function will already (out of the box) point to a workflow process. If you have customised your own process, you will need to amend the function call to call your workflow name.
    Look at the function in question and you will see what I mean.
    Hope that helps explain it!
    Regards
    Tim

  • Load balancing over two separate outside routers and two separate WAN Links

    Hi everybody,
    I have one 2851 setup with two separate ISP links and have it configured for failover with BGP.  It works great but doesn't load balance.
    Well now I have to new routers (3925's) to replace the single 2851 and I want to configure them to load balance over separate WAN links.
    Can someone help figure out the best approach to make this happen?  I would really appreciate it.
    Thank you,
    Thomas Reiling

    Disclaimer
    The Author of this posting offers the information contained within this posting without consideration and with the reader's understanding that there's no implied or expressed suitability or fitness for any purpose. Information provided is for informational purposes only and should not be construed as rendering professional advice of any kind. Usage of this posting's information is solely at reader's own risk.
    Liability Disclaimer
    In no event shall Author be liable for any damages whatsoever (including, without limitation, damages for loss of use, data or profit) arising out of the use or inability to use the posting's information even if Author has been advised of the possibility of such damage.
    Posting
    The "best approach", IMO, would be to use PfR (if your routers support it).

  • Minimal compile & link files for sun sparc?

    hi.
    i have been developing an oci dir path project using redhat linux 7.3 (2.4.x.) & gcc 2.96. (see http://sourceforge.net/projects/odpd/) i am using a dev copy of ora9i release 9.2.0.1.0 installed on the linux dev machine. i would like to compile the project on a sun sparc box using sun's C++ compiler 5.3.
    so, i would like to get my hands on solaris versions of headers & libraries for #include & linking. i don't see any need to actually run the app against an installed version of ora9i under solaris; i just want to compile & link. further, i don't have root# access on target machine, so ora9i install isn't really an option.
    the target machine:
    $ uname -a
    $ SunOS nydev-app2 5.7 Generic_106541-23 sun4u sparc SUNW,Ultra-4
    on the linux dev machine:
    $ ls -laF $ORACLE_HOME/lib/libclntsh*
    lrwxrwxrwx 1 oracle 16 Aug 31 2002 /u01/app/oracle/product/9.0.1/lib/libclntsh.so -> libclntsh.so.9.0*
    -rwxr-xr-x 1 oracle 9.8M Aug 31 2002 /u01/app/oracle/product/9.0.1/lib/libclntsh.so.9.0*
    if anyone can help me get relevant files for compile & link, please contact me: asdrury at sourceforge dot net.
    tia. asd

    Go to http//otn.oracle.com. On the downloads menu select Oracle Instant Client.
    From the 'Instant Client Downloads' page you should be able to find IC packages to download for available platforms, e.g. Solaris SPARC 64-bit. (Latest version is 11.2.0.3.)

  • Lags while c++ compile linking

    Hello, i got a system lags while gcc is linking libs on a big project, so i need to stop compile/linking if i need do some rly important stuff. Is there any way to decrease system priority of linking or other ways to beat lags?

    Mr.Elendig wrote:also ionice
    Thanks, I wasn't aware of ionice. Although it seems to be dependant on using an appropriate kernel I/O scheduler (namely CFQ).
    ungaminga wrote:any solution for qtcreator runned make?
    Either qtcreator allows customizing the call to make, or you can set the niceness of qtcreator itself. Forked processes should inherit the priority value of their parents, i.e. every process started during the build would have the niceness that you set when calling qtcreator [citation needed].

  • Pro*C compiling/linking

    I have a Pro*C EXE program on Sun that compiles/links and works fine on that Unix box, which has Pro*C compiler and Oracle 8.05 installed. Apparantly this EXE program is refering to Oracle libraries ar run time. If I take this program on other Sun computer, it gives me an error "ld.so.1: dpn_config: fatal: libclntsh.so.1.0: open failed: No such file or directory"
    How can I create a Pro*C EXE program that will run on similar Sun box that has no Oracle or Pro*C compiler installed?
    There must be some linking parameters in make file I can make use of.
    Thanks for your help.
    Kishor

    Sorry alphasof, but you'll need to have the minimum oracle client software installed on every sun box you move the app to. More than just the libraries are involved, the whole TNS name lookup stuff gets installed, etc. It's more than just trying to statically link in the oracle libraries to your executable.
    If you install the oracle client software, you'll have no problems moving the executable.

  • OCCI compilation/linking problems on Linux

    Hi All,
    I am having difficulty in compiling/linking demo programms on Linux machine. I am trying to compile a demo program with the following command:
    make -f demo_rdbms.mk build EXE=occidml OBJS=occidml.o
    When I try to do this I get following errors:
    make -f demo_rdbms.mk build EXE=occidml OBJS=occidml.o
    /usr/bin/g++ -c -I/u01/app/oracle/product/9.0.1/rdbms/demo -I/u01/app/oracle/product/9.0.1/rdbms/public -I/u01/app/oracle/product/9.0.1/plsql/public -I/u01/app/oracle/product/9.0.1/network/public occidml.cpp
    cc -L/u01/app/oracle/product/9.0.1/lib/ -L/u01/app/oracle/product/9.0.1/rdbms/lib/ -o occidml occidml.o -lclntsh `cat /u01/app/oracle/product/9.0.1/lib/ldflags` `cat /u01/app/oracle/product/9.0.1/lib/sysliblist` -ldl -lm
    occidml.o: In function `main':
    occidml.o(.text+0x49): undefined reference to `endl(ostream &)'
    occidml.o(.text+0x56): undefined reference to `cout'
    occidml.o(.text+0x5b): undefined reference to `ostream::operator<<(char const *)'
    occidml.o(.text+0x66): undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
    occidml.o(.text+0x102): undefined reference to `endl(ostream &)'
    occidml.o(.text+0x10f): undefined reference to `cout'
    occidml.o(.text+0x114): undefined reference to `ostream::operator<<(char const *)'
    occidml.o(.text+0x11f): undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
    occidml.o(.text+0x138): undefined reference to `endl(ostream &)'
    occidml.o(.text+0x145): undefined reference to `cout'
    occidml.o(.text+0x14a): undefined reference to `ostream::operator<<(char const *)'
    occidml.o(.text+0x155): undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
    occidml.o(.text+0x16e): undefined reference to `endl(ostream &)'
    occidml.o(.text+0x17b): undefined reference to `cout'
    occidml.o(.text+0x180): undefined reference to `ostream::operator<<(char const *)'
    occidml.o(.text+0x18b): undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
    occidml.o(.text+0x1a4): undefined reference to `endl(ostream &)'
    occidml.o(.text+0x1b1): undefined reference to `cout'
    occidml.o(.text+0x1b6): undefined reference to `ostream::operator<<(char const *)'
    occidml.o(.text+0x1c1): undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
    occidml.o(.text+0x1f7): undefined reference to `endl(ostream &)'
    occidml.o(.text+0x204): undefined reference to `cout'
    occidml.o(.text+0x209): undefined reference to `ostream::operator<<(char const *)'
    occidml.o(.text+0x214): undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
    occidml.o(.text+0x22d): undefined reference to `endl(ostream &)'
    I am sure that I don't have some of the environmet variables right. I will really appreciate if anyone can point me in the right direction.
    Thanks for your time.
    Parag

    Thanks for your reply. I installed the Sun Forte Compiler 7 and tried again. The errors I got this time are:
    ----------------- ERRORS ---------------------
    Undefined first referenced
    symbol in file
    __builtin_delete test.o
    __length_error(const char*) test.o
    __ls__7ostreamPFR7ostream_R7ostream test.o
    terminate(void) test.o
    createEnvironment__Q36oracle4occi11EnvironmentQ46oracle4occi11Environment4ModePvPFPvUi_PvPFPvPvUi_PvPFPvPv_v test.o
    endl(ostream&) test.o
    cerr test.o
    __ls__7ostreamPCc test.o
    __cp_pop_exception test.o
    __tfQ36oracle4occi12SQLException test.o
    copy__t18string_char_traits1ZcPcPCcUi test.o
    __eh_rtime_match test.o
    __throw test.o
    length__t18string_char_traits1ZcPCc test.o
    __start_cp_handler test.o
    move__t18string_char_traits1ZcPcPCcUi test.o
    __out_of_range(const char*) test.o
    ld: fatal: Symbol referencing errors. No output written to test.exe
    ====================================================
    Do you have any other suggestions? Though Linux sounds good, I have no choice but to develop on Solaris.
    Thanks very much!

  • 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

  • What is the correct sequence to link 3 Airport Express units in a WDS?

    I have 3 AE units set up in a WDS. I currently have unit #1 as a main base. Unit #2 is an extended base station. Unit #3 is a remote base station. I have unit #1 connected to the iMac for the internet on the first floor via an ethernet connection. It is linked to units #2 & 3. Unit #2 is about 60' away on the first floor & linked to unit #3 as a relay. Unit #3 is about 18' below unit #2 in the basement and about 75' from unit #1 & connected to the HP notebook via ethernet. The connections between both computers are fine, thought a bit slow. All three AE units have the audio port active to stream iTunes. Most of the time, the audio is great! However, (and this is the problem....finally) when I am at the HP computer & unit #3, the audio signal drops out for booth units #2 & 3 if I turn as certain way in my chair. I guess when I am in a certain place in the basement, I am blocking the signal (weird....). I also noticed this as well sometimes in the stairwell to the basement. All 3 units have the following wireless settings: Multicast Rate = 1...Interference Robustness = disabled...Transmitter Power = 100%. I have tried the Multicast rate @ 2 & 5.5, with the Interference Robustness enabled and disabled. I didn't notice any significant difference. Would it help to take unit #3 out of the direct link of unit #1? (Let unit #1 link to unit #2 and unit #2 link to unit #3.) Any other helpful hints to try would be appreciated. Thanks!!!
    iMac   Mac OS X (10.3.9)   Also HP Notebook XP SP2

    Would it help to take unit #3 out of the direct link of unit #1? (Let unit #1 link to unit #2 and unit #2 link to unit #3.)
    Perhaps but probably not.
    The fact remains that RF signals can be blocked and redirected. Therefore physically moving things around can affect wireless performance. For more ideas, see KB 58543, AirPort: Potential sources of interference.

  • Trouble Compiling links-hacked

    I'm trying to get links-hacked to compile.  Here's my PKGBUILD:
    pkgname=links-hacked
    pkgver=030709
    pkgrel=1
    pkgdesc="An enhanced version of links with support for tabs"
    pkgurl="http://xray.sai.msu.ru/~karpov/links-hacked/"
    url="http://xray.sai.msu.ru/~karpov/links-hacked/"
    source=(http://xray.sai.msu.ru/~karpov/$pkgname/downloads/$pkgname-$pkgver.tgz http://xray.sai.msu.ru/~karpov/links-hacked/downloads/links-fonts-new.tgz)
    depends=('openssl' 'x-server')
    md5sums=(74fb710ecfa89aceb51211f7dce24ab0 1176ee9132c9df8c1ec955e28bff6f5b)
    conflicts=(links)
    build() {
    cd $startdir/src/$pkgname-$pkgver/
    mv ../font ./
    ./autogen.sh
    ./configure --prefix=/usr --enable-ssl --enable-javascript --enable-graphics
    make || return 1
    make prefix=$startdir/pkg/usr install
    However, compilation fails with this:
    if gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include -I/usr/X11R6/include -O2 -march=pentium2 -mmmx -fomit-frame-pointer -mtune=pentium2 -pipe -I/usr/include/freetype2 -MT options.o -MD -MP -MF ".deps/options.Tpo" -c -o options.o options.c;
    then mv -f ".deps/options.Tpo" ".deps/options.Po"; else rm -f ".deps/options.Tpo"; exit 1; fi
    options.c: In function `load_options':
    options.c:264: error: label at end of compound statement
    make[2]: *** [options.o] Error 1
    make[2]: Leaving directory `/var/abs/local/links-hacked/src/links-hacked-030709'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/var/abs/local/links-hacked/src/links-hacked-030709'
    make: *** [all] Error 2
    ==> ERROR: Build Failed. Aborting...
    Any suggestions?
    PS It appears that the website for links-hacked is down, so I'll try to upload the source to my own webspace.

    I don't know quite where to put that "break;"  Here are the two instances of the pattern "load_options" in options.c:
    void load_options()
    FILE *f;
    unsigned char *options_file = stracpy (links_home);
    if (!options_file)
    goto load_failure;
    add_to_strn(&options_file, "options");
    f = fopen(options_file, "r");
    mem_free(options_file);
    if (!f){
    goto load_failure;
    while(!feof(f)){
    unsigned char *tmp=mem_alloc(MAX_STR_LEN);
    unsigned char *name=mem_alloc(MAX_STR_LEN);
    unsigned char *value=tmp;
    unsigned char *vvv;
    if(fgets(tmp,MAX_STR_LEN,f)){
    /* Very ugly realization of option string parsing --karpov */
    sscanf(tmp,"%s",name);
    while(*value!='"')
    value++;
    value++;
    vvv=value;
    while((*vvv!='"')||
    (*vvv=='"' &&
    *(vvv-1)=='\')) vvv++;
    *vvv='';
    options_set(name,value);
    mem_free(tmp);
    mem_free(name);
    fclose(f);
    return;
    load_failure:
    /* internal("Can't load options!n"); */
    and
    void init_options()
    register_options();
    load_options();
    I'm a bit of a novice when it comes to writing any code other than bash scripts.

  • [Mac OS X - CS5.5] Compiling / Linking Boost

    Hi,
    I would like to use Boost filesystem library (like I did for my previous windows plugin).
    Compiling Boost using Bjam utility works fine. But when I want to link against this library, I have got some linking troubles.
    Assuming I have not  set the correct options for the compilation, Could anyone tell me which one to choose?
    Actually, here it is my compile command: ./bjam address-model=32_64 architecture=x86 macosx-version=10.5 toolset=darwin-4.0 stage
    Boost version: 1_48_0
    Best regards,
    Thomas.

    I have finally solved my problem. Actually I used Boost_1_37_0 revision, the same I used the Windows.
    I compiled those library using the following options:
    address-model=32
    architecture=x86
    macosx-version=10.5
    toolset=darwin-4.0
    For using filesystem library, do not forget to use system library too.
    Hoping this will help some of you.
    Best regards,
    Thomas.

  • Online Links for Multithreading C++ Application in Unix

    Hi Everybody,
    I am working in Solaris Sparc 5.8 Machine. I need to implement Multithreading for C++ Application in Unix Environment.
    It would be of great help if you can mention any website or online links which gives examples of how to do Multithreaded Programming for C++ Application in Unix Environment.
    Thanking you in Advance.
    Thanks & Regards,
    Vasu

    There are two questions there, threading on Solaris is well documented on docs.sun.com, just search for something like pthread_create.
    How you use the C APIs in you C++ code is down to you. You could have a look at boot threads for one possible solution.
    Ian

  • Invoke.c doesn't compile link prob w JVM

    I am a C++ programmer and I am sure this problem is caused by C++ not being able to find a lib or dll file to link to.
    Arrrgg. Can anyone help me with this linking problem when I try to compile.
    Thanks
    D

    Under Windows you need the jvm.lib in JAVA_HOME\lib\
    Under Unix/Linux you need the libjvm.so
    Try (Linux/Suse):
    g++ -I/usr/lib/java/include -I/usr/lib/java/include/linux -L/usr/lib/java/jre/lib/i386/client -ljvm Invoce.c

  • Question about SunStudio v12.3 and compiling on multicore multithreaded T5240

    Hi,
    I purchased the first multicore/multithreaded server for our company to replace SunFire V240 and v445.  The server I got is T5240 with 2x4 core 1.2GHz CPUS.
    I am running Sparc Solaris 10u11 on this server
    I installed SunStudio v12.3 and compiled mysql v5.5.19, which took an hour.  When I compiled on a SunFire v240 with 2 1.5G CPUs, the the compile took 1/2hour.  Now I know the single CPU on the 5240 is smaller than the v240 but I thought it would be faster on the 5240. I used the same compile script (see below).
    Is compiling a program just use a single CPU no matter what the capabilities?  Is there an option I can pass to have it use all the server resources so it can compile faster?   This is a web server and I want to make sure all the programs I compile can utilize all the capabilities of the cores and threads.
    If this is not the forum for this, any suggestions on where I can get help with this would be appreciated.
    Thank you.
    -----------------------------------  mysql compile script -------------------------------
    #!/bin/sh
    PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/sfw/bin:/usr/local/bin:.:/usr/bin:/usr/sbin:/usr/ucb:/etc:/usr/local/cmake/bin; export PATH
    CC=cc; export CC
    CXX=CC; export CXX
    /usr/local/cmake/bin/cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/home1/mysql_data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1

    Each compilation is single-threaded. When you run a serial make, you get one compilation at a time.
    The way to improve throughput is to use a parallel make that can run more than one task simultaneously. I am not familiar with cmake. I took a quick look at the documentation at cmake.org, but could not tell whether cmake offers a parallel make option. Both GNU gmake and the dmake that comes with Studio do. (Studio dmake is the same as Solaris make, with extensions for parallel and distributed job management.) Assuming  there is enough memory, I use a rule of thumb of setting the max parallel jobs at 1 per core. You can find out the number of cores on Solaris this way:
         /usr/sbin/psrinfo | grep -c on-line
    Setting up the makefile for parallel make requires some attention to be sure you don't try to build parts out of sequence. Either all dependencies must be made explicit, or you need a way to say "wait for A to be done before starting B". (Both gmake and dmake have this feature.)  I don't know whether mysql makefiles are ready for parallel make, but you can probably find out at mysql.org, along with whether it works with dmake or gmake. (Each make variation has some usually minor incompatibilities with the others.)
    Message was edited by: Steve_Clamage

Maybe you are looking for

  • Way to know when and who ran the MRP for a plant

    Hi, Is there a way to find when and who ran the MRP for a plant in Prodn Environment? I know if you look at MD05, we know the MRP list based on date/time of last MRP run. But it does not tell me who ran the MRP. Currently there are some purchase reqs

  • Cisco ACE key.pem import error

    Hi after extracting the Cert.pem and Key.pem from the PXF file. i am get the following error trying to import the Key.pem file to the ACE ENG-CTN-ACE01/Admin# crypto import tftp 10.3.31.249 key5.pem key5 Trying to connect to tftp server...... TFTP ge

  • Data deleted from Access appears to still be cached

    Hi, I have a simple routine that deletes data from a table in an access database. All works well except I if I search on a item that has just been deleted it appears. If I perform another transaction in between then my search on the deleted data fail

  • Trouble Loading Webpages -- urgent/one allows access to Citrix environment

    I need access to a webpage w/in a Citrix environment to allow me to work at home. I was able to do this fine on my Powerbook G4 with 10.4.11. Just bought a MacBook Pro preloaded with Snow Leopard, and can no longer access the webpage. Also have troub

  • Why has my tab bar rearranged itself?

    Normally, when I have multiple tabs open, the little plus sign to add a tab is on the furthest right tab edge. For the past few days it's been moving itself all the way to the left.. well almost. It seems it's attaching itself to my first tab, which