Message ID | 1436460577-11245-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 16c1321bd78ad79a7252b714184ee2a0b5944c56 |
Headers | show |
On 9 July 2015 at 17:49, Peter Maydell <peter.maydell@linaro.org> wrote: > Compilation of TCI was accidentally broken by the recent disassembler > changes: > > CC x86_64-softmmu/arch_init.o > In file included from target-i386/cpu-qom.h:23:0, > from target-i386/cpu.h:986, > from include/qemu-common.h:122, > from include/disas/bfd.h:12, > from disas/tci.c:20: > include/qom/cpu.h:178:43: error: unknown type name ‘disassemble_info’ > void (*disas_set_info)(CPUState *cpu, disassemble_info *info); > ^ > include/qom/cpu.h:179:1: error: > no semicolon at end of struct or union [-Werror] > } CPUClass; > ^ > cc1: all warnings being treated as errors > > The underlying cause of this is an include loop: > bfd.h -> qemu-common.h -> target-arm/cpu.h -> target-arm/cpu-qom.h > -> qom/cpu.h -> bfd.h > > which means that if bfd.h is included first then qom/cpu.h doesn't > get the definition of the disassemble_info type that it wanted. > The easiest fix for this is to include qemu-common.h from tci.c > before including disas/bfd.h. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Applied to master. Note that "make check" on a TCI seems to assert; I'll let somebody who cares about TCI look into that. -- PMM
diff --git a/disas/tci.c b/disas/tci.c index a606b63..d7b954e 100644 --- a/disas/tci.c +++ b/disas/tci.c @@ -17,6 +17,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include "qemu-common.h" #include "disas/bfd.h" #include "tcg/tcg.h"
Compilation of TCI was accidentally broken by the recent disassembler changes: CC x86_64-softmmu/arch_init.o In file included from target-i386/cpu-qom.h:23:0, from target-i386/cpu.h:986, from include/qemu-common.h:122, from include/disas/bfd.h:12, from disas/tci.c:20: include/qom/cpu.h:178:43: error: unknown type name ‘disassemble_info’ void (*disas_set_info)(CPUState *cpu, disassemble_info *info); ^ include/qom/cpu.h:179:1: error: no semicolon at end of struct or union [-Werror] } CPUClass; ^ cc1: all warnings being treated as errors The underlying cause of this is an include loop: bfd.h -> qemu-common.h -> target-arm/cpu.h -> target-arm/cpu-qom.h -> qom/cpu.h -> bfd.h which means that if bfd.h is included first then qom/cpu.h doesn't get the definition of the disassemble_info type that it wanted. The easiest fix for this is to include qemu-common.h from tci.c before including disas/bfd.h. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- The cleaner fix is to not include qemu-common.h from bfd.h, but at this point in the release cycle I want a small and safe change. --- disas/tci.c | 1 + 1 file changed, 1 insertion(+)