Re: undefined symbol: cri_initialize_checkpoint_args_t

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Thu Dec 11 2008 - 17:55:57 PST

  • Next message: Paul H. Hargrove: "BLCR 0.8.0 beta4 is now available"
    Alexandre,
    
       I think I replied too quickly.
    
       I realize now that there is more than one issue.  When you "force the 
    blcr/include" I believe you are getting the correct header, but there is a 
    problem there: use of "new" as a struct member name is incompatible with C++. 
      So, when you *don't* "force the blcr/include" you are probably getting an 
    installed header from an old 0.6.X version of BLCR, which explains your 
    undefined symbol problem.
    
       I am hoping to put out 0.8.0_b4 in the next few hours.  Expect it to 
    include a fix for the blcr_common.h:213 errors.
    
    -Paul
    
    Paul H. Hargrove wrote:
    > Alexandre,
    > 
    > The symbol cri_initialize_checkpoint_args_t existed in BLCR-0.6.X, but 
    > has not existed since 0.7.0 was released in May 2008.  In 0.6.X, it only 
    > appears in the following extract from libcr.h, which was intended to 
    > convey that one calls cr_initialize_checkpoint_args_t() and never uses 
    > cri_initialize_checkpoint_args_t() directly.  Note the cr_ vs. cri_ 
    > prefixes are easy to get confused by mistake.  The comment is out of 
    > sync with the name of the function one is supposed to call, so I can see 
    > how confusion could result.
    > 
    >> // cr_checkpoint_args_t_init
    >> //
    >> // This initializer is needed so that old clients compiled against a new
    >> // libcr.h get sane values for fields they know nothing about.
    >> //
    >> void cri_initialize_checkpoint_args_t(cr_checkpoint_args_t *value);
    >> static inline void 
    >> cr_initialize_checkpoint_args_t(cr_checkpoint_args_t *cr_args)
    >> {
    >>     cr_args->cr_version = LIBCR_VERSION_ID;
    >>     cri_initialize_checkpoint_args_t(cr_args); /* Don't call directly */
    >> }
    > 
    > 
    > So, I see two possibilities.  One is that you are using an old libcr.h 
    > header.  That is certainly possible if 0.6.X was installed, for 
    > instance, in /usr/include or /usr/local/include.   Another possibility 
    > is that your code is calling cri_initialize_checkpoint_args_t() directly 
    > where cr_initialize_checkpoint_args_t() was intended.
    > 
    > If you still need more help, let us know.
    > 
    > -Paul
    > 
    > 
    > Alexandre Strube wrote:
    >> Hello,
    >>
    >> I am trying to use the checkpoint library as a "client". However, I'm 
    >> facing some trouble.
    >>
    >> My tool compiles fine. But when I try to run it, I'm faced with the 
    >> message:
    >> undefined symbol: cri_initialize_checkpoint_args_t
    >>
    >> I'm pretty sure it's my fault, as the 
    >> examples/pthread_misc/pthread_misc works.
    >>
    >> This is blcr 0.8.0_b2
    >>
    >>
    >>
    >> The code compiles with no errors, unless I force the blcr/include. 
    >> Then, I have the errors:
    >>
    >> g++ -c  -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -g -fno-strict-aliasing 
    >> -I/users/surak/pin/Include -I/users/surak/pin/InstLib 
    >> -I/users/surak/pin/source/tools/InstLib 
    >> -I/users/surak/pin/extras/xed2-ia32/include 
    >> -I/users/surak/pin/source/include 
    >> -I/users/surak/pin/source/include/gen -I/softs/blcr-0.8.0_b2/include/ 
    >> -DTARGET_IA32 -DTARGET_LINUX -o obj-ia32/sigenable.o sigenable.cpp
    >> In file included from /softs/blcr-0.8.0_b2/include/libcr.h:33,
    >>                  from sigenable.cpp:5:
    >> /softs/blcr-0.8.0_b2/include/blcr_common.h:213: error: expected 
    >> unqualified-id before "new"
    >> /softs/blcr-0.8.0_b2/include/blcr_common.h:213: error: abstract 
    >> declarator `const char*' used as declaration
    >> /softs/blcr-0.8.0_b2/include/blcr_common.h:213: error: expected `;' 
    >> before "new"
    >>
    >>
    >> -- 
    >> []
    >> Alexandre Strube
    >> surak_at_ubuntu_dot_com <mailto:surak_at_ubuntu_dot_com>
    > 
    > 
    
    
    -- 
    Paul H. Hargrove                          PHHargrove_at_lbl_dot_gov
    Future Technologies Group
    HPC Research Department                   Tel: +1-510-495-2352
    Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900
    

  • Next message: Paul H. Hargrove: "BLCR 0.8.0 beta4 is now available"