If I understand correctly you want to avoid needing the kernel sources (or headers) in order to compile user-cr - so you would suggest to auto-generate the a header file and add it as a source file to user-cr ? (If this doesn't make any sense -- I'll blame the hour ...) Oren. Matt Helsley wrote: > Oren, > > Could this script or something like it be useful for user-cr > rather than always using KERNELSRC and KERNELBUILD? > > Cheers, > -Matt Helsley > On Tue, Aug 04, 2009 at 04:43:08PM -0700, Matt Helsley wrote: >> Signed-off-by: Matt Helsley <matthltc@xxxxxxxxxx> >> --- > > <snip> > >> diff --git a/rewrite-cr-header.sh b/rewrite-cr-header.sh >> new file mode 100755 >> index 0000000..22f92c7 >> --- /dev/null >> +++ b/rewrite-cr-header.sh >> @@ -0,0 +1,64 @@ >> +#!/bin/bash >> +# >> +# Rewrite the contents of cr.h >> +# >> + >> +KERNELSRC=../oren >> + >> +################################################################################ >> + >> +[ -z "${KERNELSRC}" ] && exit -1 >> +mv cr.h cr.h.bak || exit -1 >> + >> +( >> +COND='#if' >> +set -e >> +echo '/* AUTOMATICALLY GENERATED by rewrite-cr-header.sh */' >> + >> +# >> +# Include non-__KERNEL__ sections of include/linux/checkpoint.h using >> +# cpp to expand only the directives of the kernel header. >> +# >> +# The first 6 lines of cpp output write some trashy #define/#undef lines >> +# we don't want. Would it be better to throw everything away until we see >> +# "#define _LINUX_CHECKPOINT_H_" ?? >> +# >> +cpp -CC -P -U__KERNEL__ -undef -nostdinc -fdirectives-only ${KERNELSRC}/include/linux/checkpoint.h | tail -n '+6' >> + >> +find ${KERNELSRC}/arch -name 'unistd*.h' -print | sort | \ >> +while read UNISTDH ; do >> + REGEX='[[:space:]]*#[[:space:]]*define[[:space:]]+__NR_(checkpoint|restart)[[:space:]]+[[:digit:]]+' >> + >> + [ -z "${UNISTDH}" ] && continue >> + KARCH=$(echo "${UNISTDH}" | sed -e 's|.*/arch/\([^/]\+\)/.*|\1|') >> + BITNESS=$(basename "${UNISTDH}" | sed -e 's/unistd_*\([12346]\+\)\.h/\1/') >> + >> + # Map KARCH to something suitable for CPP e.g. __i386__ >> + case "${KARCH}" in >> + x86) if [ "${BITNESS}" == "32" ]; then >> + CPPARCH=i386 >> + else >> + CPPARCH=x86_64 >> + fi >> + ;; >> + s390*) CPPARCH=s390x ;; >> + *) CPPARCH="${KARCH}" ;; >> + esac >> + >> + grep -q -E "${REGEX}" ${UNISTDH} || { >> + echo '/* '"${CPPARCH}"' unsupported. */' >> + continue >> + } >> + >> + echo -e "${COND} __${CPPARCH}__\\n" >> + grep -E "${REGEX}" ${UNISTDH} | \ >> + sed -e 's/^[[:space:]]*#define[[:space:]]\+__NR_\([^[:space:]]\+\)[[:space:]]\+\([^[:space:]]\+\).*$/#ifndef __NR_\1\n#define __NR_\1 \2\n#endif\n/' >> + COND='#elif' >> +done >> +echo -e '#else\n#error "Architecture does not have definitons for __NR_(checkpoint|restart)"\n#endif' >> +) > cr.h || { >> + mv -f cr.h.bak cr.h >> + exit -1 >> +} >> + >> +rm -f cr.h.bak >> -- >> 1.5.6.3 >> >> > _______________________________________________ > Containers mailing list > Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx > https://lists.linux-foundation.org/mailman/listinfo/containers _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers