On Thu, 18 Jan 2018 13:10:13 +0000 Peter Maydell <peter.mayd...@linaro.org> wrote:
> On 18 January 2018 at 13:06, Igor Mammedov <imamm...@redhat.com> wrote: > > I've looked and such case is rather an exception, > > I can fix it up in 2 ways: > > 1st: > > target/arm/cpu.h > > +#if !defined(CONFIG_USER_ONLY) > > +#define TARGET_DEFAULT_CPU_TYPE TYPE_ARM_CPU > > +else > > +#define TARGET_DEFAULT_CPU_TYPE ARM_CPU_TYPE_NAME("any") > > +#endif > > This is weird, because TYPE_ARM_CPU isn't really > a sensible thing to use for anything, so you've really set > it up as a "this is only of any use for null-machine.c", > in which case you should just do that in null-machine.c. yep, that would be only for null-machine.c use as proxy type, however null-machine.c is build for every target so this proxy type can't be defined null-machine.c unless we resort to ifdef ladder there. How about adding to each $ARCH/cpu.h a null-machine dedicated define: #define CPU_RESOLVING_TYPE TYPE_FOO_CPU using that in null machine and renaming TARGET_DEFAULT_CPU_TYPE to USERONLY_DEFAULT_CPU_TYPE but I'd still keep it within $ARCH/cpu.h so we won't have to create a bunch of new linux-user/$ARCH/target_elf.h files just for that and duplicate it to bsd-user/$ARCH/target_elf.h > thanks > -- PMM