Hi

I prepared cleanup https://reviews.apache.org/r/46730/
@Haosdent can you check it?

Best
Tomek

śr., 27.04.2016 o 04:03 użytkownik haosdent <[email protected]> napisał:

> Hi, @bmahler, thank you so much for review it! As the email I sent
> to @idownes and @chenzhiwei, we could drop that safely by adding
>
> ```
> #include <linux/unistd.h>
> ```
>
> from @RobinDong's patch.
>
> Because this header file comes from kernel headers and it include machine
> specific syscall numbers no matter which CPU architecture used.
>
> On the other hand, we can not use
>
> ```
> #include <unistd.h>
> #include <sys/syscall.h>
> ```
>
> as the source of the syscall numbers because these header files come from
> glibc.
>
> ```
> $ rpm -qf /usr/include/sys/syscall.h
> glibc-headers-2.12-1.149.el6_6.5.x86_64
> $ rpm -qf /usr/include/unistd.h
> glibc-headers-2.12-1.149.el6_6.5.x86_64
> ```
>
> If use them, would fall into the problem @idownes mentioned in
> `linux/ns.hpp` (Old glibc library and new kernel)
>
> ```
> #ifdef SYS_setns
>   int ret = ::syscall(SYS_setns, fd.get(), nstype.get());
> #elif __x86_64__
>   // A workaround for those hosts that have an old glibc (older than
>   // 2.14) but have a new kernel. The magic number '308' here is the
>   // syscall number for 'setns' on x86_64 architecture.
>   int ret = ::syscall(308, fd.get(), nstype.get());
> #else
> #error "setns is not available"
> #endif
> ```
>
> I verify `#include <linux/unistd.h>` works on CentOS 6.5, CentOS 7.2 Ubuntu
> 14.04 with X86 and Debian jessie with ARM. In code level, I verify it works
> on all architectures I know [
> http://lxr.free-electrons.com/ident?v=3.8;i=__NR_pivot_root] .
>
> @BingLi would like to port Mesos works on System Z, and he blocked by
> `__NR_pivot_root ` (https://issues.apache.org/jira/browse/MESOS-5242) as
> well. As he commented in ticket, `#include <linux/unistd.h>` could solve
> the problem as well.
>
>
> Appendix[The verify program]:
>
> ```
> #include <linux/unistd.h>
> #include <iostream>
>
> int main(int argc, char const *argv[])
> {
>   std::cout << __NR_pivot_root << std::endl;
>   return 0;
> }
> ```
>
>
> On Wed, Apr 27, 2016 at 3:24 AM, Benjamin Mahler <[email protected]>
> wrote:
>
> > Looks like Vinod shipped MESOS-5121. I just shipped MESOS-5263 following
> > the same approach.
> >
> > Haosdent mentioned some cleanups are possible here so please keep us
> > posted if the cleanups are available!
> >
> > On Sun, Apr 24, 2016 at 1:34 PM, Tomek Janiszewski <[email protected]>
> > wrote:
> >
> >> Hi,
> >>
> >> Can anyone shepherd https://issues.apache.org/jira/browse/MESOS-5263?
> >> It's similar to https://issues.apache.org/jira/browse/MESOS-5121 and
> >> could
> >> be resolved in the same manner or it could be done in a way that'll
> >> support
> >> other platforms as well.
> >>
> >> Thanks
> >> Tomek
> >>
> >
> >
>
>
> --
> Best Regards,
> Haosdent Huang
>

Reply via email to