xfs
[Top] [All Lists]

Re: Problem compiling xfs (SuSE, gcc 2.95.2-98)

To: "Marcelo E. Magallon" <marcelo.magallon@xxxxxxxxxxx>
Subject: Re: Problem compiling xfs (SuSE, gcc 2.95.2-98)
From: Russell Cattelan <cattelan@xxxxxxxxxxx>
Date: Tue, 19 Sep 2000 09:39:36 -0500
Cc: linux-xfs@xxxxxxxxxxx
References: <20000919145108.A11456@techno.informatik.uni-stuttgart.de>
Reply-to: cattelan@xxxxxxxxxxx
Sender: owner-linux-xfs@xxxxxxxxxxx
"Marcelo E. Magallon" wrote:

That compiler has known problems compiling XFS,
there is also problems with the correctness of the code that
is generated.

At this time XFS should be compiled with egcs 2.91.66.

> Hi,
>
>  I'm trying to compile the kernel out of the CVS tree.  I'm getting this:
>
> xfs_bmap.c:3254: internal error--unrecognizable insn:
> (insn/i 564 563 2232 (parallel[
>             (set (reg:SI 0 %eax)
>                 (asm_operands ("") ("=a") 0[
>                         (reg:DI 1 %edx)
>                     ]
>                     [
>                         (asm_input:DI ("A"))
>                     ]  ("xfs_os_defs.h") 72))
>             (set (reg:SI 1 %edx)
>                 (asm_operands ("") ("=d") 1[
>                         (reg:DI 1 %edx)
>                     ]
>                     [
>                         (asm_input:DI ("A"))
>                     ]  ("xfs_os_defs.h") 72))
>         ] ) -1 (insn_list 524 (nil))
>     (nil))
>
>  The compiler line is:
>
> gcc -D__KERNEL__ -I/home/magallon/proj/xfs/kernel/include -Wall 
> -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe  
> -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4 
> -fschedule-insns2 -mwide-multiply -fexpensive-optimizations 
> -fno-strict-aliasing  -g3 -Wno-unused  -Wno-parentheses -Wno-uninitialized 
> -I./linux -I./pseudo-inc -I. -D_KERNEL -funsigned-char  -Wno-unknown-pragmas 
> -DDEBUG -DXFSDEBUG  -c -o xfs_bmap.o xfs_bmap.c
>
>  Adding -fno-cse-skip-blocks allows the compilation to finish.  Is some
>  specific version of gcc needed to compile this?  At home I run debian
>  which includes at highly patched version of gcc (2.95.2 + CVS updates)
>  but I've never ran into trouble using that to compile 2.4.x kernels, but
>  I don't really know what SuSE includes...
>
>  Perhaps someone here who knows his way arround gcc internals can shed
>  some light into this?  The part in question seems to be:
>
> static inline __u32 xfs_do_div(void *a, __u32 b, int n)
> {
>         __u32   mod;
>
>         switch (n) {
>                 case 4:
>                         mod = *(__u32 *)a % b;
>                         *(__u32 *)a = *(__u32 *)a / b;
>                         return mod;
>                 case 8:
>                         mod = do_div(*(__u64 *)a, b);
>                         return mod;
>         }
>
>         /* NOTREACHED */
>         return 0;
> }
>
>  line 72 is the second "mod =".
>
>  TIA,
>
>                                         Marcelo

--
Russell Cattelan
cattelan@xxxxxxxxxxx




<Prev in Thread] Current Thread [Next in Thread>