Message ID | 20200930164949.1425294-12-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | user-mode: Prune build dependencies (part 3) | expand |
Philippe Mathieu-Daudé <philmd@redhat.com> writes: > A lot of QAPI generated code is never used by user-mode. > > Split out qapi_system_modules and qapi_system_or_tools_modules > from the qapi_all_modules array. We now have 3 groups: > - always used > - use by system-mode or tools (usually by the block layer) > - only used by system-mode > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > Resetting due to Meson update: > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > --- > qapi/meson.build | 51 ++++++++++++++++++++++++++++++++++-------------- > 1 file changed, 36 insertions(+), 15 deletions(-) > > diff --git a/qapi/meson.build b/qapi/meson.build > index 7c4a89a882..ba9677ba97 100644 > --- a/qapi/meson.build > +++ b/qapi/meson.build > @@ -14,39 +14,60 @@ util_ss.add(files( > )) > > qapi_all_modules = [ > + 'common', > + 'introspect', > + 'misc', > +] > + > +qapi_system_modules = [ > 'acpi', > 'audio', > + 'dump', > + 'machine-target', > + 'machine', > + 'migration', > + 'misc-target', > + 'net', > + 'pci', > + 'qdev', > + 'rdma', > + 'rocker', > + 'tpm', > + 'trace', > +] > + > +# system or tools > +qapi_block_modules = [ > 'authz', > 'block-core', > 'block', > 'char', > - 'common', > 'control', > 'crypto', > - 'dump', > 'error', > - 'introspect', > 'job', > - 'machine', > - 'machine-target', > - 'migration', > - 'misc', > - 'misc-target', > - 'net', > 'pragma', > - 'qdev', > - 'pci', > 'qom', > - 'rdma', > - 'rocker', > 'run-state', > 'sockets', > - 'tpm', > - 'trace', > 'transaction', > 'ui', > ] Most of these aren't "block modules". Name the thing qapi_system_or_tools_modules? > +if have_system > + qapi_all_modules += qapi_system_modules > +elif have_user > + # Temporary kludge because X86CPUFeatureWordInfo is not > + # restricted to system-mode. This should be removed (along > + # with target/i386/feature-stub.c) once target/i386/cpu.c > + # has been cleaned. > + qapi_all_modules += ['machine-target'] > +endif > + > +if have_block Aha, precedence for using "block" as an abbreviation of "system or tools". I find that confusing. > + qapi_all_modules += qapi_block_modules > +endif > + > qapi_storage_daemon_modules = [ > 'block-core', > 'char',
On 10/1/20 7:09 AM, Markus Armbruster wrote: > Philippe Mathieu-Daudé <philmd@redhat.com> writes: > >> A lot of QAPI generated code is never used by user-mode. >> >> Split out qapi_system_modules and qapi_system_or_tools_modules >> from the qapi_all_modules array. We now have 3 groups: >> - always used >> - use by system-mode or tools (usually by the block layer) >> - only used by system-mode >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> --- >> Resetting due to Meson update: >> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> >> --- >> qapi/meson.build | 51 ++++++++++++++++++++++++++++++++++-------------- >> 1 file changed, 36 insertions(+), 15 deletions(-) >> >> diff --git a/qapi/meson.build b/qapi/meson.build >> index 7c4a89a882..ba9677ba97 100644 >> --- a/qapi/meson.build >> +++ b/qapi/meson.build >> @@ -14,39 +14,60 @@ util_ss.add(files( >> )) >> >> qapi_all_modules = [ >> + 'common', >> + 'introspect', >> + 'misc', >> +] >> + >> +qapi_system_modules = [ >> 'acpi', >> 'audio', >> + 'dump', >> + 'machine-target', >> + 'machine', >> + 'migration', >> + 'misc-target', >> + 'net', >> + 'pci', >> + 'qdev', >> + 'rdma', >> + 'rocker', >> + 'tpm', >> + 'trace', >> +] >> + >> +# system or tools >> +qapi_block_modules = [ >> 'authz', >> 'block-core', >> 'block', >> 'char', >> - 'common', >> 'control', >> 'crypto', >> - 'dump', >> 'error', >> - 'introspect', >> 'job', >> - 'machine', >> - 'machine-target', >> - 'migration', >> - 'misc', >> - 'misc-target', >> - 'net', >> 'pragma', >> - 'qdev', >> - 'pci', >> 'qom', >> - 'rdma', >> - 'rocker', >> 'run-state', >> 'sockets', >> - 'tpm', >> - 'trace', >> 'transaction', >> 'ui', >> ] > > Most of these aren't "block modules". Name the thing > qapi_system_or_tools_modules? This is why I used first, then realized this is defined as: have_block = have_system or have_tools > >> +if have_system >> + qapi_all_modules += qapi_system_modules >> +elif have_user >> + # Temporary kludge because X86CPUFeatureWordInfo is not >> + # restricted to system-mode. This should be removed (along >> + # with target/i386/feature-stub.c) once target/i386/cpu.c >> + # has been cleaned. >> + qapi_all_modules += ['machine-target'] >> +endif >> + >> +if have_block > > Aha, precedence for using "block" as an abbreviation of "system or > tools". I find that confusing. I'll use qapi_system_or_tools_modules back, it is clearer, thanks. > >> + qapi_all_modules += qapi_block_modules >> +endif >> + >> qapi_storage_daemon_modules = [ >> 'block-core', >> 'char', >
diff --git a/qapi/meson.build b/qapi/meson.build index 7c4a89a882..ba9677ba97 100644 --- a/qapi/meson.build +++ b/qapi/meson.build @@ -14,39 +14,60 @@ util_ss.add(files( )) qapi_all_modules = [ + 'common', + 'introspect', + 'misc', +] + +qapi_system_modules = [ 'acpi', 'audio', + 'dump', + 'machine-target', + 'machine', + 'migration', + 'misc-target', + 'net', + 'pci', + 'qdev', + 'rdma', + 'rocker', + 'tpm', + 'trace', +] + +# system or tools +qapi_block_modules = [ 'authz', 'block-core', 'block', 'char', - 'common', 'control', 'crypto', - 'dump', 'error', - 'introspect', 'job', - 'machine', - 'machine-target', - 'migration', - 'misc', - 'misc-target', - 'net', 'pragma', - 'qdev', - 'pci', 'qom', - 'rdma', - 'rocker', 'run-state', 'sockets', - 'tpm', - 'trace', 'transaction', 'ui', ] +if have_system + qapi_all_modules += qapi_system_modules +elif have_user + # Temporary kludge because X86CPUFeatureWordInfo is not + # restricted to system-mode. This should be removed (along + # with target/i386/feature-stub.c) once target/i386/cpu.c + # has been cleaned. + qapi_all_modules += ['machine-target'] +endif + +if have_block + qapi_all_modules += qapi_block_modules +endif + qapi_storage_daemon_modules = [ 'block-core', 'char',