From: Nausca <na...@ca...> - 2011-03-11 07:07:46
|
Hi I believe when restart process in the very early phase, there is no libc available. so I modify my code to: init_STATIC_TLS_TID_OFFSET=STATIC_TLS_TID_OFFSET(); in mtcp_init function, and use the static variable 'init_STATIC_TLS_TID_OFFSET' instead. then restart won't need to call 'gnu_get_libc_version()' thanks. nausca. ----- Original Message ----- From: "Kapil Arya" <ka...@cc...> To: "Gene Cooperman" <ge...@cc...> Cc: "Nausca Hsu" <na...@ca...>; <dmt...@li...> Sent: Friday, March 11, 2011 9:53 AM Subject: Re: [Dmtcp-forum] random mismatch motherpid and tls_pid, tls_tid On Thu, Mar 10, 2011 at 12:52 AM, Gene Cooperman <ge...@cc...> wrote: > Hi Nausca, > Thanks for the clarification. I wrote a preliminary suggestion and > have now checked with Kapil to confirm some details. Below, we describe > how you can modify the DMTCP source (based on svn revision 929) so that > you can compile the DMTCP binaries (dmtcp_checkpoint, dmtcp_restart, etc.) > on any machine and run them on any other machine. The binaries will > run independently of the glibc version and kernel version of the machine > on which they were compiled. > > We are also working on a new release in the next few days. The new > release should incorporate the changes to DMTCP described below. So, you > can wait for the release, or try out the changes now. If you try the > changes now, could you confirm for us that these fix the problem? > The changes are to svn revision 929 (current as of this writing). > > The compile-time dependencies seem to occur in four ways: > > A. mtcp/mtcp.c: __GLIBC_PREREQ > There was an occurence of: #if __GLIBC_PREREQ (2,12) > in earlier svn revisions. This has gone away in revision 929 and should > no longer be a problem for you. We compute our information dynamically > at runtime. We do compare the dynamic answer with a statically > compiled answer. But if they disagree, we now proceed with the > dynamically computed version and issue a warning about the disagreement. > You can safely ignore any warning we produce. DMTCP has been updated to use gnu_get_libc_version at most places. The only significant ones are in dmtcp/src/miscwrappers.cpp around SYS_{accept4,inotify_init,inotify_init1,epoll_create,epoll_create1}. They are needed for proper compilation as the SYS_* is not defined in earlier versions. |