Thread (78 messages) 78 messages, 6 authors, 2014-09-16

[PATCH v7 0/4] arm: Fix DEBUG_LL for multi-platform kernels (without PL01X)

From: Daniel Thompson <hidden>
Date: 2014-07-14 09:06:18
Also in: lkml

On 12/07/14 12:10, Russell King - ARM Linux wrote:
On Sat, Jul 12, 2014 at 11:16:02AM +0100, Russell King - ARM Linux wrote:
quoted
On Mon, Jun 30, 2014 at 12:30:51PM +0100, Daniel Thompson wrote:
quoted
This patchset removes some single-platform compatibility tricks related
to DEBUG_LL and, as a result, allows multi_v7_defconfig derived builds
to enable DEBUG_LL. Currently the user selected kbuild setting is
ignored and the PL01X's DEBUG_LL stub is silently selected instead. This
is a pain if your hardware doesn't have this cell, not least because it
takes a little time to figure out that kbuild built the wrong code.
I don't think this is quite right, because I'm now seeing randconfig
finding build errors with this.  We can end up with this configuration:

CONFIG_DEBUG_LL=y
CONFIG_DEBUG_LL_UART_NONE=y
# CONFIG_DEBUG_ICEDCC is not set
# CONFIG_DEBUG_SEMIHOSTING is not set
# CONFIG_DEBUG_LL_UART_8250 is not set
# CONFIG_DEBUG_LL_UART_PL01X is not set
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
# CONFIG_DEBUG_UART_8250 is not set

which results in:

arch/arm/kernel/debug.S:24:33: fatal error: mach/debug-macro.S: No such file or directory
make[2]: *** [arch/arm/kernel/debug.o] Error 1
arch/arm/kernel/head.S:27:33: fatal error: mach/debug-macro.S: No such file or directory
make[2]: *** [arch/arm/kernel/head.o] Error 1
Full config file:
http://www.arm.linux.org.uk/developer/build/file.php?lid=11023
Thanks. I will look at this.

Problem is that by making the build system honour the user choice we end
up breaking the build when the user makes a bad choice (albeit a bad
choice that they should not have been given in the first place).

I guess the best fix is to get rid of CONFIG_DEBUG_LL_UART_NONE altogether.

Note that this also breaks building versatile as an oldconfig.  I'll drop
the patch series from my tree for the time being.
There is a difficult problem with oldconfig.

Today DEBUG_LL only works on versatile defconfigs (and oldconfig
upgrades from there) because although CONFIG_DEBUG_LL_UART_NONE is
selected the build system does not honour this and behaves as though the
use selected CONFIG_DEBUG_LL_UART_PL01X instead.

Unfortunately if we fix this and remove CONFIG_DEBUG_LL_UART_NONE as
proposed above then the oldconfig will silently select
CONFIG_DEBUG_SEMIHOSTING.

In other words I will be able to offer a patch so that oldconfig
*compiles* but I don't know how to get it to preserve behaviour (or
whether this matters).

Hints about what to do would be very welcome.


Daniel.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help