[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging] libxl: fix build (missing CLONE_NEWIPC) on astonishingly old systems
commit 50923ade7a3d1a87b3a46020daa2ed897eb749e3 Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> AuthorDate: Mon Jan 14 14:59:37 2019 +0000 Commit: Wei Liu <wei.liu2@xxxxxxxxxx> CommitDate: Thu Jan 17 17:59:29 2019 +0000 libxl: fix build (missing CLONE_NEWIPC) on astonishingly old systems CLONE_NEWIPC was introduced in Linux 2.6.19, on the 29th of November 2006, which was 12 years, 1 month, and 14 days ago. Nevertheless apparently some people are trying to build Xen on systems whose kernel headers are that old. Placate these people by providing a fallback #define for CLONE_NEWIPC. The actual binary value will of course remain constant, because of the kernel API promise, so this is and will be correct on all platforms where the CLONE_NEWIPC is supported. (Even if for some reason we miss the right #includes.) Of course at runtime this value will not work on older kernels. It will be rejected as unknown by anything except some pre-2.6.18 kernels. On those kernels we do not want to support dm_restrict, and an attempt to use it will fail. It is OK for the failure to be a messy EINVAL syscall failure. (The IPC namespace unshare is necessary to avoid a suborned deprivileged qemu from causing trouble with shm, sem, etc.) On the very old kernels, the feature is totally out of scope. (We are only interested, here, in making the build work, to avoid blocking people who aren't using this feature.) CC: Wei Liu <wei.liu2@xxxxxxxxxx> CC: Juergen Gross <jgross@xxxxxxxx> CC: Jan Beulich <JBeulich@xxxxxxxx> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> Release-acked-by: Juergen Gross <jgross@xxxxxxxx> --- tools/libxl/libxl_linux.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/libxl/libxl_linux.c b/tools/libxl/libxl_linux.c index 6475cca64b..59dd945bc1 100644 --- a/tools/libxl/libxl_linux.c +++ b/tools/libxl/libxl_linux.c @@ -18,6 +18,14 @@ #include <sys/resource.h> #include "libxl_internal.h" + +/* Workarounds for Linux-specific lacks can go here: */ + +#ifndef CLONE_NEWIPC /* Available as of Linux 2.6.19 / glibc 2.8 */ +# define CLONE_NEWIPC 0x08000000 +#endif + + int libxl__try_phy_backend(mode_t st_mode) { if (S_ISBLK(st_mode) || S_ISREG(st_mode)) { -- generated by git-patchbot for /home/xen/git/xen.git#staging _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |