Get rid of some header conflicts and glibc specific things.

--- a/compel/arch/ppc64/src/lib/include/uapi/asm/infect-types.h
+++ b/compel/arch/ppc64/src/lib/include/uapi/asm/infect-types.h
@@ -1,6 +1,8 @@
 #ifndef UAPI_COMPEL_ASM_TYPES_H__
 #define UAPI_COMPEL_ASM_TYPES_H__
 
+#include <asm/types.h>
+#include <asm/elf.h>
 #include <stdbool.h>
 #include <signal.h>
 #include <stdint.h>
@@ -55,8 +57,8 @@
 #define MSR_TM_ACTIVE(x) ((((x)&MSR_TM) && ((x) & (MSR_TMA | MSR_TMS))) != 0)
 
 typedef struct {
-	uint64_t fpregs[NFPREG];
-	__vector128 vrregs[NVRREG];
+	uint64_t fpregs[ELF_NFPREG];
+	__vector128 vrregs[ELF_NVRREG];
 	uint64_t vsxregs[NVSXREG];
 
 	int flags;
@@ -66,8 +68,8 @@
 			uint64_t tfhar, texasr, tfiar;
 		} tm_spr_regs;
 		user_regs_struct_t regs;
-		uint64_t fpregs[NFPREG];
-		__vector128 vrregs[NVRREG];
+		uint64_t fpregs[ELF_NFPREG];
+		__vector128 vrregs[ELF_NVRREG];
 		uint64_t vsxregs[NVSXREG];
 	} tm;
 } user_fpregs_struct_t;
--- a/compel/arch/ppc64/src/lib/infect.c
+++ b/compel/arch/ppc64/src/lib/infect.c
@@ -1,7 +1,6 @@
 #include <sys/ptrace.h>
 #include <sys/types.h>
 #include <sys/uio.h>
-#include <sys/user.h>
 #include <sys/mman.h>
 #include <stdint.h>
 #include <errno.h>
@@ -57,15 +56,15 @@
 {
 	uint64_t *mcfp = (uint64_t *)mc->fp_regs;
 
-	memcpy(mcfp, fpregs, sizeof(*fpregs) * NFPREG);
+	memcpy(mcfp, fpregs, sizeof(*fpregs) * ELF_NFPREG);
 }
 
 static void put_altivec_regs(mcontext_t *mc, __vector128 *vrregs)
 {
 	vrregset_t *v_regs = (vrregset_t *)(((unsigned long)mc->vmx_reserve + 15) & ~0xful);
 
-	memcpy(&v_regs->vrregs[0][0], vrregs, sizeof(uint64_t) * 2 * (NVRREG - 1));
-	v_regs->vrsave = *((uint32_t *)&vrregs[NVRREG - 1]);
+	memcpy(&v_regs->vrregs[0][0], vrregs, sizeof(uint64_t) * 2 * (ELF_NVRREG - 1));
+	v_regs->vrsave = *((uint32_t *)&vrregs[ELF_NVRREG - 1]);
 	mc->v_regs = v_regs;
 }
 
--- a/criu/arch/ppc64/crtools.c
+++ b/criu/arch/ppc64/crtools.c
@@ -1,7 +1,6 @@
 #include <string.h>
 #include <unistd.h>
 #include <elf.h>
-#include <sys/user.h>
 #include <asm/unistd.h>
 #include <sys/uio.h>
 
@@ -33,7 +32,7 @@
 		return NULL;
 	user_ppc64_fpstate_entry__init(fpe);
 
-	fpe->n_fpregs = NFPREG;
+	fpe->n_fpregs = ELF_NFPREG;
 	fpe->fpregs = xmalloc(fpe->n_fpregs * sizeof(fpe->fpregs[0]));
 	if (!fpe->fpregs) {
 		xfree(fpe);
@@ -41,7 +40,7 @@
 	}
 
 	/* FPSRC is the last (33th) register in the set */
-	for (i = 0; i < NFPREG; i++)
+	for (i = 0; i < ELF_NFPREG; i++)
 		fpe->fpregs[i] = fpregs[i];
 
 	return fpe;
@@ -69,7 +68,7 @@
 	user_ppc64_vrstate_entry__init(vse);
 
 	/* protocol buffer store only 64bit entries and we need 128bit */
-	vse->n_vrregs = (NVRREG - 1) * 2;
+	vse->n_vrregs = (ELF_NVRREG - 1) * 2;
 	vse->vrregs = xmalloc(vse->n_vrregs * sizeof(vse->vrregs[0]));
 	if (!vse->vrregs) {
 		xfree(vse);
@@ -77,13 +76,13 @@
 	}
 
 	/* Vectors are 2*64bits entries */
-	for (i = 0; i < (NVRREG - 1); i++) {
+	for (i = 0; i < (ELF_NVRREG - 1); i++) {
 		p64 = (uint64_t *)&vrregs[i];
 		vse->vrregs[i * 2] = p64[0];
 		vse->vrregs[i * 2 + 1] = p64[1];
 	}
 
-	p32 = (uint32_t *)&vrregs[NVRREG - 1];
+	p32 = (uint32_t *)&vrregs[ELF_NVRREG - 1];
 	vse->vrsave = *p32;
 
 	return vse;
@@ -95,7 +94,7 @@
 
 	pr_debug("Restoring Altivec registers\n");
 
-	if (vse->n_vrregs != (NVRREG - 1) * 2) {
+	if (vse->n_vrregs != (ELF_NVRREG - 1) * 2) {
 		pr_err("Corrupted Altivec dump data\n");
 		return -1;
 	}
@@ -103,7 +102,7 @@
 	/* Note that this should only be done in the case MSR_VEC is set but
 	 * this is not a big deal to do that in all cases.
 	 */
-	memcpy(&v_regs->vrregs[0][0], vse->vrregs, sizeof(uint64_t) * 2 * (NVRREG - 1));
+	memcpy(&v_regs->vrregs[0][0], vse->vrregs, sizeof(uint64_t) * 2 * (ELF_NVRREG - 1));
 	/* vscr has been restored with the previous memcpy which copied 32
 	 * 128bits registers + a 128bits field containing the vscr value in
 	 * the low part.
--- a/include/common/arch/ppc64/asm/cmpxchg.h
+++ b/include/common/arch/ppc64/asm/cmpxchg.h
@@ -1,6 +1,10 @@
 #ifndef __CR_CMPXCHG_H__
 #define __CR_CMPXCHG_H__
 
+#ifndef __always_inline
+#define __always_inline __inline __attribute__ ((__always_inline__))
+#endif
+
 /*
  * Copied from kernel header file arch/powerpc/include/asm/cmpxchg.h
  */
