Re: [PATCH v13.1 04/23] x86/stacktool: Compile-time stack metadata validation

From: Josh Poimboeuf
Date: Thu Oct 01 2015 - 11:26:07 EST


On Thu, Oct 01, 2015 at 09:50:51AM -0500, Chris J Arges wrote:
> <snip>
> > +
> > +$(STACKTOOL_IN): FORCE
> > + @$(MAKE) $(build)=stacktool
> > +
> > +$(STACKTOOL): $(STACKTOOL_IN)
> > + @(test -d ../../kernel -a -d ../../tools -a -d ../stacktool && (( \
> > + diff -I'^#include' arch/x86/insn/insn.c ../../arch/x86/lib/insn.c >/dev/null && \
> > + diff -I'^#include' arch/x86/insn/inat.c ../../arch/x86/lib/inat.c >/dev/null && \
> > + diff arch/x86/insn/x86-opcode-map.txt ../../arch/x86/lib/x86-opcode-map.txt >/dev/null && \
> > + diff arch/x86/insn/gen-insn-attr-x86.awk ../../arch/x86/tools/gen-insn-attr-x86.awk >/dev/null && \
> > + diff -I'^#include' arch/x86/insn/insn.h ../../arch/x86/include/asm/insn.h >/dev/null && \
> > + diff -I'^#include' arch/x86/insn/inat.h ../../arch/x86/include/asm/inat.h >/dev/null && \
> > + diff -I'^#include' arch/x86/insn/inat_types.h ../../arch/x86/include/asm/inat_types.h >/dev/null) \
> > + || echo "Warning: stacktool: x86 instruction decoder differs from kernel" >&2 )) || true
> > + $(QUIET_LINK)$(CC) $(STACKTOOL_IN) $(LDFLAGS) -o $@
> > +
> > +clean:
> > + $(call QUIET_CLEAN, stacktool) $(RM) $(STACKTOOL)
> > + $(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
> > + $(Q)$(RM) $(OUTPUT)arch/x86/insn/inat-tables.c
> > +
> > +FORCE:
> > +
> > +.PHONY: clean FORCE
>
> Josh,
>
> I'm getting the following error when the above makefile is called:
> Warning: stacktool: x86 instruction decoder differs from kernel

It's just a warning, not an error, right? Just want to make sure it
didn't fail the build. The files are in sync on tip/master.

> This was seen with your patches rebased on v4.3-rc2.
>
> It is failing on this diff:
> diff arch/x86/insn/x86-opcode-map.txt ../../arch/x86/lib/x86-opcode-map.txt
>
> And the output is as follows:
> 902,904d890
> < 3: xrstors
> < 4: xsavec
> < 5: xsaves
> 949,950c935,936
> < 6: XSAVEOPT | clwb (66) | mfence (11B)
> < 7: clflush | clflushopt (66) | sfence (11B) | pcommit (66),(11B)
> ---
> > 6: XSAVEOPT | mfence (11B)
> > 7: clflush | sfence (11B)
>
> Why do these files essentially need to be duplicated? Would it be possible to
> point Make at the files that are already in ../../arch/x86/*?

They're duplicated because the "tools" dir is supposed to be source
independent from the rest of the kernel tree.

--
Josh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/