AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
# Check for some headers
-AC_CHECK_HEADERS([sys/signalfd.h pty.h sys/capability.h])
+AC_CHECK_HEADERS([sys/signalfd.h pty.h sys/capability.h sys/personality.h])
# Check for some functions
AC_CHECK_FUNCS([openpty])
#include <sys/mount.h>
#include <sys/mman.h>
#include <sys/prctl.h>
-#include <sys/personality.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <sys/capability.h>
#endif
+#if HAVE_SYS_PERSONALITY_H
+#include <sys/personality.h>
+#endif
+
#include "lxcseccomp.h"
lxc_log_define(lxc_conf, lxc);
static int setup_personality(int persona)
{
+ #if HAVE_SYS_PERSONALITY_H
if (persona == -1)
return 0;
}
INFO("set personality to '0x%x'", persona);
+ #endif
return 0;
}
#include <sys/types.h>
#include <sys/param.h>
#include <sys/utsname.h>
-#include <sys/personality.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <net/if.h>
#include "parse.h"
+#include "config.h"
#include "confile.h"
#include "utils.h"
#include <lxc/conf.h>
#include "network.h"
+#if HAVE_SYS_PERSONALITY_H
+#include <sys/personality.h>
+#endif
+
lxc_log_define(lxc_confile, lxc);
static int config_personality(const char *, const char *, struct lxc_conf *);
signed long lxc_config_parse_arch(const char *arch)
{
+ #if HAVE_SYS_PERSONALITY_H
struct per_name {
char *name;
unsigned long per;
if (!strcmp(pername[i].name, arch))
return pername[i].per;
}
+ #endif
return -1;
}
static int lxc_get_arch_entry(struct lxc_conf *c, char *retv, int inlen)
{
- int len, fulllen = 0;
+ int fulllen = 0;
if (!retv)
inlen = 0;
else
memset(retv, 0, inlen);
+ #if HAVE_SYS_PERSONALITY_H
+ int len = 0;
+
switch(c->personality) {
case PER_LINUX32: strprint(retv, inlen, "x86"); break;
case PER_LINUX: strprint(retv, inlen, "x86_64"); break;
default: break;
}
+ #endif
return fulllen;
}
fprintf(fout, "lxc.pts = %d\n", c->pts);
if (c->ttydir)
fprintf(fout, "lxc.devttydir = %s\n", c->ttydir);
+ #if HAVE_SYS_PERSONALITY_H
switch(c->personality) {
case PER_LINUX32: fprintf(fout, "lxc.arch = x86\n"); break;
case PER_LINUX: fprintf(fout, "lxc.arch = x86_64\n"); break;
default: break;
}
+ #endif
#if HAVE_APPARMOR
if (c->aa_profile)
fprintf(fout, "lxc.aa_profile = %s\n", c->aa_profile);
#include <sys/param.h>
#include <sys/types.h>
#include <sys/wait.h>
-#include <sys/personality.h>
#include "attach.h"
#include "commands.h"
#include "arguments.h"
#include "caps.h"
#include "cgroup.h"
+#include "config.h"
#include "confile.h"
#include "start.h"
#include "sync.h"
#include "log.h"
#include "namespace.h"
+#if HAVE_SYS_PERSONALITY_H
+#include <sys/personality.h>
+#endif
+
lxc_log_define(lxc_attach_ui, lxc);
static const struct option my_longopts[] = {
}
}
+ #if HAVE_SYS_PERSONALITY_H
if (new_personality < 0)
new_personality = init_ctx->personality;
strerror(errno));
return -1;
}
+ #endif
if (!elevated_privileges && lxc_attach_drop_privs(init_ctx)) {
ERROR("could not drop privileges");