Re: Compiling a 32bit kernel fails

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

 



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




[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux