Morita,<br><br>First of all, thanks a lot for your answer. <br><br>Actually, I have tried your suggestion, but without success. Apparently, there is another function that belongs to the newer GLIBC and is not part of the older one. <br>
“Glibc 2.7 doesn't contain timerfd, signalfd, and eventfd”. I’ve substituted the three wrapper functions that call directly the system call. For instance, <br><br>#include <sys/syscall.h><br>#include <unistd.h><br>
#include <fcntl.h><br>#include <stdint.h><br><br>#ifndef __NR_eventfd2<br>#if defined(__x86_64__)<br>#define __NR_eventfd2  290<br>#elif defined(__i386__)<br>#define __NR_eventfd2  328<br>#else<br>#error "Can't define __NR_eventfd2 for your architecture."<br>
#endif<br>#endif<br><br><br>typedef uint64_t eventfd_t;<br><br>#define EFD_SEMAPHORE 1<br>#define EFD_CLOEXEC 02000000<br>#define EFD_NONBLOCK 04000<br><br>int eventfd(unsigned int, int);<br>int eventfd_read(int, eventfd_t *);<br>
int eventfd_write(int, eventfd_t);<br><br>inline int eventfd_read(int fd, eventfd_t *value)<br>{<br>    return (sizeof(*value) == read(fd, value, sizeof(*value))) ? 0 : -1;<br>}<br><br>inline int eventfd(unsigned int initval, int flags) <br>
{<br>        return syscall(__NR_eventfd2, initval, flags);<br>}<br><br>inline int eventfd_write(int fd, eventfd_t value)<br>{<br>    return (sizeof(value) == write(fd, &value, sizeof(value))) ? 0 : -1;<br>}<br><br>The code just works on local machine. It doesn’t work on the older GLIBC machine and for some reason the GLIBC dependency remains. I put this mark <<<<<<<<< GLIBC DEPENDENCY >>>>>>>>>   to show the dependecy.<br>
<br>#ldd –v sheep<br><br>root@ubuntu:/opt/apps/corosync/sbin# ldd -v sheep<br>    linux-gate.so.1 =>  (0xb777c000)<br>    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb774d000)<br>    libcpg.so.4 => /usr/lib/libcpg.so.4 (0xb7745000)<br>
    libcfg.so.4 => /usr/lib/libcfg.so.4 (0xb773d000)<br>    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7593000)<br>    /lib/ld-linux.so.2 (0xb777d000)<br>    libcoroipcc.so.4 => /usr/lib/libcoroipcc.so.4 (0xb758c000)<br>
<br>    Version information:<br>    ./sheep:<br>        libcfg.so.4 (COROSYNC_CFG_0.82) => /usr/lib/libcfg.so.4<br>        libcpg.so.4 (COROSYNC_CPG_1.0) => /usr/lib/libcpg.so.4<br>        libpthread.so.0 (GLIBC_2.1) => /lib/i386-linux-gnu/libpthread.so.0<br>
        libpthread.so.0 (GLIBC_2.2) => /lib/i386-linux-gnu/libpthread.so.0<br>        libpthread.so.0 (GLIBC_2.3.2) => /lib/i386-linux-gnu/libpthread.so.0<br>        libpthread.so.0 (GLIBC_2.0) => /lib/i386-linux-gnu/libpthread.so.0<br>
        libc.so.6 (GLIBC_2.3) => /lib/i386-linux-gnu/libc.so.6<br><br>        <<<<<<<<< GLIBC DEPENDENCY >>>>>>>>>  <br>        libc.so.6 (GLIBC_2.10) => /lib/i386-linux-gnu/libc.so.6 <br>
        <<<<<<<<< GLIBC DEPENDENCY >>>>>>>>><br>        <br>        libc.so.6 (GLIBC_2.2) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.3.2) => /lib/i386-linux-gnu/libc.so.6<br>
        libc.so.6 (GLIBC_2.7) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.1) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.4) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.3.4) => /lib/i386-linux-gnu/libc.so.6<br>
        libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6<br>    /lib/i386-linux-gnu/libpthread.so.0:<br>        ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2<br>        ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2<br>
        ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2<br>        libc.so.6 (GLIBC_2.3.2) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.1) => /lib/i386-linux-gnu/libc.so.6<br>
        libc.so.6 (GLIBC_PRIVATE) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.2) => /lib/i386-linux-gnu/libc.so.6<br>    /usr/lib/libcpg.so.4:<br>
        libc.so.6 (GLIBC_2.3.4) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.4) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6<br>
        libcoroipcc.so.4 (COROSYNC_COROIPCC_3.0) => /usr/lib/libcoroipcc.so.4<br>        libpthread.so.0 (GLIBC_2.0) => /lib/i386-linux-gnu/libpthread.so.0<br>    /usr/lib/libcfg.so.4:<br>        libc.so.6 (GLIBC_2.3.4) => /lib/i386-linux-gnu/libc.so.6<br>
        libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.4) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6<br>        libcoroipcc.so.4 (COROSYNC_COROIPCC_3.0) => /usr/lib/libcoroipcc.so.4<br>
        libpthread.so.0 (GLIBC_2.0) => /lib/i386-linux-gnu/libpthread.so.0<br>    /lib/i386-linux-gnu/libc.so.6:<br>        ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2<br>        ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2<br>
        ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2<br>    /usr/lib/libcoroipcc.so.4:<br>        libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.4) => /lib/i386-linux-gnu/libc.so.6<br>
        libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6<br>        libc.so.6 (GLIBC_2.3.4) => /lib/i386-linux-gnu/libc.so.6<br>        libpthread.so.0 (GLIBC_2.2) => /lib/i386-linux-gnu/libpthread.so.0<br>
        libpthread.so.0 (GLIBC_2.1) => /lib/i386-linux-gnu/libpthread.so.0<br>        libpthread.so.0 (GLIBC_2.0) => /lib/i386-linux-gnu/libpthread.so.0<br><br><br><div class="gmail_extra"><br><br><div class="gmail_quote">
2012/10/22 Gustavo Callou <span dir="ltr"><<a href="mailto:grac@cin.ufpe.br" target="_blank">grac@cin.ufpe.br</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p>Outro caminho... p rodar o sheepdog</p>
<div class="gmail_quote">---------- Forwarded message ----------<br>From: "MORITA Kazutaka" <<a href="mailto:morita.kazutaka@lab.ntt.co.jp" target="_blank">morita.kazutaka@lab.ntt.co.jp</a>><br>Date: Oct 21, 2012 10:56 PM<br>

Subject: Re: [sheepdog] GLIBC issue<br>To: "Gustavo Callou" <<a href="mailto:grac@cin.ufpe.br" target="_blank">grac@cin.ufpe.br</a>><br>Cc:  <<a href="mailto:sheepdog@lists.wpkg.org" target="_blank">sheepdog@lists.wpkg.org</a>><br>

<br type="attribution">At Fri, 19 Oct 2012 14:44:00 -0300,<div class="im"><br>
<div>Gustavo Callou wrote:<br>
><br>
> Dear Sheepdog Development Team,<br>
><br>
>  I’ve been conducting experiments with Sheepdog. I have already tested it<br>
> with Ubuntu 12.04 machines and the Sheepdog worked well. I would like to<br>
> conduct other experiments using a specific environment that uses GLIBC 2.7.<br>
> I know that Sheepdog requires the version 2.9 or later of the GLIBC.<br>
> However, in this particular case, I’m not able to update the version of the<br>
> GLIBC. I was wondering if you could provide me some suggestions to deal<br>
> with such issue. Thanks a lot in advance.<br>
<br>
</div></div>Glibc 2.7 doesn't contain timerfd, signalfd, and eventfd.  If your<br>
kernel supports them, I think you can use Sheepdog by defining all<br>
relevant functions and structures, for example, as follows.<br>
<br>
#define __NR_signalfd 282<br>
<br>
int signalfd(int fd, const sigset_t *mask, int flags)<br>
{<br>
        return syscall(__NR_signalfd, fd, mask, flags);<br>
}<br>
<br>
<br>
Thanks,<br>
<br>
Kazutaka<br>
</div>
</blockquote></div><br><br clear="all"><br>-- <br>Bruno Silva<br>Engenheiro da Computação.<br>
</div>