On 24-Jul-14, at 7:39 AM, Guy Martin wrote:
I've been trying to compile a 3.15.6 kernel but I did not managed to
do so with either gcc 4.7.3 or 4.8.3.
This is the error I get :
In file included from /usr/src/linux-3.15.6-phoenix/arch/parisc/
include/asm/spinlock.h:5:0,
from /usr/src/linux-3.15.6-phoenix/arch/parisc/
include/asm/atomic.h:20,
from include/linux/atomic.h:4,
from /usr/src/linux-3.15.6-phoenix/arch/parisc/
include/asm/bitops.h:11,
from include/linux/bitops.h:33,
from include/linux/kernel.h:10,
from /usr/src/linux-3.15.6-phoenix/arch/parisc/
include/asm/bug.h:4,
from include/linux/bug.h:4,
from include/linux/thread_info.h:11,
from include/asm-generic/preempt.h:4,
from arch/parisc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:18,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/slab.h:14,
from kernel/signal.c:13:
kernel/signal.c: In function ‘get_signal_to_deliver’:
/usr/src/linux-3.15.6-phoenix/arch/parisc/include/asm/ldcw.h:39:2:
error: can’t find a register in class ‘R1_REGS’ while reloading ‘asm’
__asm__ __volatile__(__LDCW " 0(%2),%0" \
^
/usr/src/linux-3.15.6-phoenix/arch/parisc/include/asm/spinlock.h:
26:9: note: in expansion of macro ‘__ldcw’
while (__ldcw(a) == 0)
^
/usr/src/linux-3.15.6-phoenix/arch/parisc/include/asm/ldcw.h:39:2:
error: ‘asm’ operand has impossible constraints
__asm__ __volatile__(__LDCW " 0(%2),%0" \
^
/usr/src/linux-3.15.6-phoenix/arch/parisc/include/asm/spinlock.h:
26:9: note: in expansion of macro ‘__ldcw’
while (__ldcw(a) == 0)
^
As far as I can tell, it looks familiar :
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60925
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35193
Is the fix to modify the LDCW macro or fix gcc ?
There's not enough info to tell. In general, arguments in an asm
can't overlap in register usage with
registers listed in the clobber list. Because r1 may be needed to
reload an argument, the error can
occur as a result of optimization, etc. In that case, the macro would
need fixing.
It would be helpful to see preprocessed source and full compile command.
Dave
--
John David Anglin dave.anglin@xxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html