Re: [PATCH 3/3] m68knommu: fix 68000 CPU link with no platform selected

From: Greg Ungerer
Date: Wed May 18 2022 - 09:18:26 EST


Hi Geert,

On 18/5/22 19:20, Geert Uytterhoeven wrote:
Hi Greg.

On Wed, May 18, 2022 at 8:56 AM Greg Ungerer <gerg@xxxxxxxxxxxxxx> wrote:
If building for a nommu m68k classic CPU and no platform (board) is
selected then the final link fails with:

LD vmlinux.o
m68k-linux-ld: cannot find arch/m68k/kernel/head.o: No such file or directory
make: *** [Makefile:1158: vmlinux] Error 1

Not selecting a platform is ok, that is a generic 68000 system build.
All of the platform selections are for 68328 variants.

The underlying problem is that the CPU config option (CONFIG_M68000)
ends up not being set, it is currently only selected by one of the
platform choices.

Change CONFIG_M68000 so that it is always enabled for the nommu m68k
classic configuration.

Signed-off-by: Greg Ungerer <gerg@xxxxxxxxxxxxxx>

Thanks for your patch!

--- a/arch/m68k/Kconfig.cpu
+++ b/arch/m68k/Kconfig.cpu
@@ -37,7 +37,7 @@ endchoice
if M68KCLASSIC

config M68000
- bool
+ def_bool y

And then the selects can be removed, too, as the symbol is now always
enabled?

Yes, I think that would be the case.


I'm wondering how to handle this when another nommu-m68k-classic
platform shows up (again, cfr. the removed 68360 support) , that
would need a different head.S? Of course that's something to be
solved later...

Yes, indeed. I am kinda kicking that can down the road :-)

It probably doesn't make a lot of sense to be able to select
multiple platform types in this specific nommu m68k classic setup.
The startup config code does not support probing of platform type,
it has hard coded #if conditionals that mean it only supports a
single platform selection anyway.

Anyway, a problem to deal with when we have more choices here.


depends on !MMU
select CPU_HAS_NO_BITFIELDS
select CPU_HAS_NO_CAS

Note that mmu-m68k-classic (e.g. CONFIG_MMU=y + allnonfig) has the
same problem. That config does need other fixes too. E.g. I have
a local patch to make sure NR_IRQS is never zero, but never got to
solve the missing head.o problem in an acceptable way.

Yep, ok.

Regards
Greg



Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds