From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Thu Dec 11 2008 - 17:55:57 PST
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