Oh I didn't know that there was a i386_user_ss in order to see that it was intended that they were shared that way, so I initially thought that i386_ss was user only until I saw it in the build. On Thu, Jul 15, 2021 at 11:35 AM Peter Maydell wrote: > On Thu, 15 Jul 2021 at 17:25, Kenneth Adam Miller > wrote: > > > > Well certainly, I know they are different executables. I'm just trying > to understand how the different targets work. > > > > By subsumes, I mean that just looking at the meson.build for i386, you > can see that there are files added to the i386_ss, but not visibly added to > the softmmu target. But the softmmu target has those files built whenever > you configure and build it. > > In the meson.build files, i386_ss is files built for both softmmu and user; > i386_user_ss is files built for usermode only; i386_softmmu_ss is files > built for softmmu only. target/i386/meson.build sets target_arch, > target_softmmu_arch and target_user_arch to these sourcesets. > The top level meson.build adds the relevant target_* sourcesets to the > set of sources required to build the various executables. > > Some source files also use #ifdefs: you can look for ifdefs on > CONFIG_USER_ONLY and CONFIG_SOFTMMU to find code that's conditionally > compiled in different ways for the two executables. > > -- PMM >