Re: [PATCH] arch: xtensa: include: asm: define '_PAGE_CHG_MASK' when'NOMMU'

From: Chen Gang
Date: Sat Jun 22 2013 - 05:42:00 EST


On 06/22/2013 05:29 PM, Chris Zankel wrote:
> Hi Chen,
>
> On 06/22/2013 12:46 AM, Chen Gang wrote:
>> After define it, with the same .config file, also report another errors
>> below, Did I use the incorrect cross-compiler tools ?
>
> It almost seems that you are not using the cross compiler. There are two
> ways to specify the cross compiler.
> 1. As part of the config: make ARCH=xtensa menuconfig and set General
> setup ---> (xtensa-linux-gnu-) Cross-compiler tool prefix
> 2. Provide with make: make ARCH=xtensa CROSS_COMPILE=xtensa-linux-gnu-
>
> Since you are not specifying CROSS_COMPILE, did you configure it in .config?
>

What I have done is:

The related make:

make ARCH=xtensa allmodconfig
make ARCH=xtensa menuconfig
set "xtensa-linux-gnu-" for "Cross compilier tool prefix"
select "s6000" for "Processor type and features" -> "Xtensa Processor"
make ARCH=xtensa EXTRA_CFLAGS=-W


Thanks.

> -Chris
>
>>
>> (the attachment is the related .config file)
>>
>> Thanks.
>>
>>
>> The related environments:
>>
>> [root@dhcp122 ~]# rpm -qf /usr/bin/xtensa-linux-gnu-gcc
>> gcc-xtensa-linux-gnu-4.7.1-0.1.20120606.fc17.x86_64
>> [root@dhcp122 ~]# /usr/bin/xtensa-linux-gnu-gcc -v
>> Using built-in specs.
>> COLLECT_GCC=/usr/bin/xtensa-linux-gnu-gcc
>> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/xtensa-linux-gnu/4.7.1/lto-wrapper
>> Target: xtensa-linux-gnu
>> Configured with: ../gcc-4.7.1-RC-20120606/configure --disable-dependency-tracking --disable-silent-rules --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=xtensa-linux-gnu --enable-targets=all --program-prefix=xtensa-linux-gnu- --enable-languages=c --without-headers --enable-sjlj-exceptions --with-system-libunwind --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath --disable-gold --disable-decimal-float --enable-checking= --enable-gnu-unique-object --enable-linker-build-id --disable-plugin --enable-nls --with-system-zlib --with-bugurl=http://bugzilla.redhat.com/bugzilla/ --enable-obsolete
>> Thread model: single
>> gcc version 4.7.1 20120606 (Red Hat 4.7.1-0.1.20120606) (GCC)
>>
>> When type the command "make ARCH=xtensa allmodconfig", it always reports:
>> "gcc: error: unrecognized command line option â-mlongcallsâ"
>>
>> The related error:
>>
>> AS arch/xtensa/kernel/coprocessor.o
>> arch/xtensa/kernel/coprocessor.S: Assembler messages:
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (0) for 'rur0'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (1) for 'rur1'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (2) for 'rur2'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (3) for 'rur3'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (8) for 'rur8'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (9) for 'rur9'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (10) for 'rur10'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (11) for 'rur11'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (12) for 'rur12'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (13) for 'rur13'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (24) for 'rur24'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (25) for 'rur25'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (26) for 'rur26'
>> arch/xtensa/kernel/coprocessor.S:98: Error: invalid register number (27) for 'rur27'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wras128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:98: Error: unknown opcode or format name 'wrbs128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (0) for 'wur0'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (1) for 'wur1'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (2) for 'wur2'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (3) for 'wur3'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (8) for 'wur8'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (9) for 'wur9'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (10) for 'wur10'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (11) for 'wur11'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (12) for 'wur12'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (13) for 'wur13'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (24) for 'wur24'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (25) for 'wur25'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (26) for 'wur26'
>> arch/xtensa/kernel/coprocessor.S:107: Error: invalid register number (27) for 'wur27'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wrbl128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> arch/xtensa/kernel/coprocessor.S:107: Error: unknown opcode or format name 'wral128i'
>> make[1]: *** [arch/xtensa/kernel/coprocessor.o] Error 1
>> make: *** [arch/xtensa/kernel] Error 2
>>
>>
>> On 06/22/2013 03:40 PM, Chen Gang wrote:
>>> Define '_PAGE_CHG_MASK' when 'NOMMU' to pass compiling.
>>>
>>> The related make:
>>>
>>> make ARCH=xtensa allmodconfig
>>> make ARCH=xtensa menuconfig
>>> set "xtensa-linux-gnu-" for "Cross compilier tool prefix"
>>> select "s6000" for "Processor type and features" -> "Xtensa Processor"
>>> make ARCH=xtensa EXTRA_CFLAGS=-W
>>>
>>> The related error:
>>>
>>> arch/xtensa/include/asm/pgtable.h: In function âpte_modifyâ:
>>> arch/xtensa/include/asm/pgtable.h:289:9: error: â_PAGE_CHG_MASKâ undeclared (first use in this function)
>>>
>>>
>>> Signed-off-by: Chen Gang <gang.chen@xxxxxxxxxxx>
>>> ---
>>> arch/xtensa/include/asm/pgtable.h | 3 ++-
>>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/arch/xtensa/include/asm/pgtable.h b/arch/xtensa/include/asm/pgtable.h
>>> index 7e09f70..a28c49b 100644
>>> --- a/arch/xtensa/include/asm/pgtable.h
>>> +++ b/arch/xtensa/include/asm/pgtable.h
>>> @@ -149,9 +149,10 @@
>>> #define _PAGE_DIRTY (1<<7) /* software: page dirty */
>>> #define _PAGE_ACCESSED (1<<8) /* software: page accessed (read) */
>>>
>>> +#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
>>> +
>>> #ifdef CONFIG_MMU
>>>
>>> -#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
>>> #define _PAGE_PRESENT (_PAGE_HW_VALID | _PAGE_CA_WB | _PAGE_ACCESSED)
>>>
>>> #define PAGE_NONE __pgprot(_PAGE_NONE | _PAGE_USER)
>>>
>>
>
>
>
>


--
Chen Gang

Asianux Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/