Details
Description
When compile on ppc64le, it will through error message: src/linux/fs.cpp:443:2: error: #error "pivot_root is not available"
The current code logic in src/linux/fs.cpp is:
#ifdef __NR_pivot_root int ret = ::syscall(__NR_pivot_root, newRoot.c_str(), putOld.c_str()); #elif __x86_64__ // A workaround for systems that have an old glib but have a new // kernel. The magic number '155' is the syscall number for // 'pivot_root' on the x86_64 architecture, see // arch/x86/syscalls/syscall_64.tbl int ret = ::syscall(155, newRoot.c_str(), putOld.c_str()); #else #error "pivot_root is not available" #endif
There is no old glib version and the new kernel version, it will never run code in #ifdef __NR_pivot_root condition, and when I build on Ubuntu 16.04(It has the latest linux kernel and glibc), it still can't step into the #ifdef __NR_pivot_root condition.
For powerpc case, I added another condition:
#elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ // A workaround for powerpc. The magic number '203' is the syscall // number for 'pivot_root' on the powerpc architecture, see // https://w3challs.com/syscalls/?arch=powerpc_64 int ret = ::syscall(203, newRoot.c_str(), putOld.c_str());
Attachments
Issue Links
- is cloned by
-
MESOS-5263 pivot_root is not available on ARM
- Resolved
- is related to
-
MESOS-2022 Mesos does not compile on ARM architecture
- Accepted