[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: About ARCH=sparc and what to pass to recordmcount.pl



On Mon, Aug 15, 2011 at 05:21:02PM +0200, Uwe Kleine-König wrote:
> Hello,
> 
> when I enable CONFIG_FUNCTION_TRACER and CONFIG_DYNAMIC_FTRACE for the
> Debian kernel the build fails with:
> 
>   CC      init/do_mounts_initrd.o
> Arch sparc is not supported with CONFIG_FTRACE_MCOUNT_RECORD at .../scripts/recordmcount.pl line 368.
> 
> This happens because the kernel package build scripts call
> 
> 	make ARCH=sparc
> 
> $(ARCH) is passed to scripts/recordmcount.pl and the latter only knows
> about "sparc64".
 
We are currently overriding ARCH and we set it to be the source
architecture name, so that $(ARCH) is always the same as $(SRCARCH).

> There are several options to fix that:
> 
>  a) let the package pass ARCH=sparc64 instead of ARCH=sparc
>     Then sparc would be the only architecture that doesn't pass the
>     (Debian) arch here.

This is not the case.  For example. ARCH=arm and ARCH=x86 do not match
the Debian architecture names.

[...]
>  b) pass SRCARCH instead of ARCH to recordmcount.pl and do
>     s/sparc64/sparc/ in recordmcount.pl.
[...]

This is probably the right thing to do.  As I understand it,
architecture variants (32- vs 64-bit, big-endian vs litle-endian)
should be distinguished by CONFIG variables now, not by $(ARCH).

However, the names of those CONFIG variables vary between source
architectures, so how do we decide what to pass to recordmcount.pl?
$(ARCH) is useful in that it provides all that information in a single
word.
 
Ben.

-- 
Ben Hutchings
We get into the habit of living before acquiring the habit of thinking.
                                                              - Albert Camus


Reply to: