On Mon, Jan 23, 2017 at 07:41:48PM +0000, Peter Maydell wrote: > On 23 January 2017 at 19:32, James Hanley <jhan...@dgtlrift.com> wrote: > > Changeset fails to compile: > > > > qemu/vl.c:3683:18: error: ‘QEMU_OPTION_enable_hax’ undeclared (first use in > > this function) > > case QEMU_OPTION_enable_hax: > > ^ > > I assume that there is details in > > > > ./qemu-options.def > > ./qemu-options.hx > > > > that were not included with the commit? > > Your source tree probably has a stale qemu-options.def in it > from an attempt to do an in-tree build at some point in the > past (and now you are doing out-of-tree builds). If you do a > 'make distclean' in the source tree this will get rid of the > stale junk and the build should work. (Or you can just git > clone a fresh tree; or attempt to more carefully remove > individual stale stuff, but that risks leaving some other > stale file around.) > > (The change to qemu-options.hx is sufficient, because we > generate qemu-options.def from it in the build tree; but > if you have a stale .def file in the source tree then > gcc will pick that one up before the one in the build tree; > which works until something requires a change that postdates > the stale stuff.) > > thanks > -- PMM
Maybe we should change the include order to always prefer the build tree files if there? An alternative is to do what Linux does, create a file in tree when doing a build, and then make an out of tree one fail and suggest distclean. -- MST