Markus Armbruster <arm...@redhat.com> writes:
> Alex Bennée <alex.ben...@linaro.org> writes: > >> Markus Armbruster <arm...@redhat.com> writes: >> >>> In my "build everything" tree, changing sysemu/sysemu.h triggers a >>> recompile of some 5400 out of 6600 objects (not counting tests and >>> objects that don't depend on qemu/osdep.h). >>> >>> 119 of 380 #include directives are actually superfluous. Delete them. >>> Downgrade two more to qapi/qapi-types-run-state.h, and move one from >>> char/serial.h to char/serial.c. >>> >>> This doesn't reduce actual use much, as it's still included into >>> widely included headers. The next commit will tackle that. >>> >>> Signed-off-by: Markus Armbruster <arm...@redhat.com> >>> --- >> <snip> >>> hw/semihosting/config.c | 1 + >> <snip> >>> stubs/semihost.c | 1 + >> <snip> >>> diff --git a/hw/semihosting/config.c b/hw/semihosting/config.c >>> index 2a8e7e1045..9807f10cb0 100644 >>> --- a/hw/semihosting/config.c >>> +++ b/hw/semihosting/config.c >>> @@ -24,6 +24,7 @@ >>> #include "qemu/error-report.h" >>> #include "hw/semihosting/semihost.h" >>> #include "chardev/char.h" >>> +#include "sysemu/sysemu.h" >>> >>> QemuOptsList qemu_semihosting_config_opts = { >>> .name = "semihosting-config", >>> diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c >>> index b8332150f1..9f3cff5fb6 100644 >> <snip> >>> >>> diff --git a/stubs/semihost.c b/stubs/semihost.c >>> index 4d5b3c0653..f90589259c 100644 >>> --- a/stubs/semihost.c >>> +++ b/stubs/semihost.c >>> @@ -12,6 +12,7 @@ >>> #include "qemu/option.h" >>> #include "qemu/error-report.h" >>> #include "hw/semihosting/semihost.h" >>> +#include "sysemu/sysemu.h" >> <snip> >> >> These additions seem out of place. If I comment them out I can still >> build fine > > sysemu/sysemu.h declares qemu_semihosting_config_opts, > hw/semihosting/config.c and stubs/semihost.c define it. > > Gcc warns when you do that for functions (-Wmissing-declarations > -Wmissing-prototypes), but not for variables. I like to include the > header anyway, to make sure the compiler checks the declaration is > consistent with the definition. > >> - I think the only place that needs them is vl.c so it has a >> typedef for the semihosting configure options. Arguably the extern >> declaration could be moved into semihostings own headers to avoid >> polluting sysemu.h more than it needs to? > > I'm not sure I'm following you. > > What would you like me to move where? extern QemuOptsList qemu_semihosting_config_opts; from sysemu.h to semihosting.h - but given other options externs are there maybe that is the best place for it. -- Alex Bennée