Re: compile error in 2.6.18-rc4

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

 



From: Meelis Roos <mroos@xxxxxxxx>
Date: Mon, 21 Aug 2006 13:06:52 +0300 (EEST)

> This is the function in question (whitespace-mangled):
> 
> static inline pte_t pfn_pte(unsigned long pfn, pgprot_t prot)
> {
>         unsigned long paddr = pfn << PAGE_SHIFT;
>         unsigned long sz_bits;
> 
>         sz_bits = 0UL;
>         if (_PAGE_SZBITS_4U != 0UL || _PAGE_SZBITS_4V != 0UL) {
>                 __asm__ __volatile__(
>                 "\n661: sethi           %uhi(%1), %0\n"
>                 "       sllx            %0, 32, %0\n"
>                 "       .section        .sun4v_2insn_patch, \"ax\"\n"
>                 "       .word           661b\n"
>                 "       mov             %2, %0\n"
>                 "       nop\n"
>                 "       .previous\n"
>                 : "=r" (sz_bits)
>                 : "i" (_PAGE_SZBITS_4U), "i" (_PAGE_SZBITS_4V));
>         }
>         return __pte(paddr | sz_bits | pgprot_val(prot));
> }
> 
> The message 'operand number missing after %-letter' is strange, I see no
> stray % marks.
> 
> The error seems to come from gcc, even make V=1 mm/fremap.s fails. Gcc
> bug?

It's the "%uhi", it should be "%%uhi" since we want a real "%" there
and not an argument expansion.

I wonder why my gcc eats this just fine and has done so all year...

Oh I see, I think your gcc is one that supports named % arguments
which allows alpha numeric assembler argument names.

Since the character after the % isn't a number, older gcc's just
assume one means a real "%" character and not an argument expansion.

Anyways I'll fix this up.
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux