Hi,

I've started testing sparc kernels builds with gcc-4.0. While sparc64 appears to be fine, sparc32 build fails (tested 2.6.12 and the current Linus' git tree) with following messages:

  CC      arch/sparc/kernel/sparc_ksyms.o
arch/sparc/kernel/sparc_ksyms.c:104: error: 'div' aliased to undefined symbol 
'.div'
arch/sparc/kernel/sparc_ksyms.c:105: error: 'mul' aliased to undefined symbol 
'.mul'
arch/sparc/kernel/sparc_ksyms.c:106: error: 'rem' aliased to undefined symbol 
'.rem'
arch/sparc/kernel/sparc_ksyms.c:107: error: 'udiv' aliased to undefined symbol 
'.udiv'
arch/sparc/kernel/sparc_ksyms.c:108: error: 'umul' aliased to undefined symbol 
'.umul'
arch/sparc/kernel/sparc_ksyms.c:109: error: 'urem' aliased to undefined symbol 
'.urem'
make[2]: *** [arch/sparc/kernel/sparc_ksyms.o] Error 1
make[1]: *** [arch/sparc/kernel] Error 2
make[1]: Leaving directory `/home/jurij/linus-git'
make: *** [stamp-build] Error 2

Offending fragment of sparc_ksyms.c is

/* Alias functions whose names begin with "." and export the aliases.
 * The module references will be fixed up by module_frob_arch_sections.
 */
#define DOT_ALIAS2(__ret, __x, __arg1, __arg2) \
        extern __ret __x(__arg1, __arg2) \
                     __attribute__((weak, alias("." # __x)));

DOT_ALIAS2(int, div, int, int)
DOT_ALIAS2(int, mul, int, int)
DOT_ALIAS2(int, rem, int, int)
DOT_ALIAS2(unsigned, udiv, unsigned, unsigned)
DOT_ALIAS2(unsigned, umul, unsigned, unsigned)
DOT_ALIAS2(unsigned, urem, unsigned, unsigned)

It looks like the aliasing is required supply the correct div/mul/rem stuff depending on subarchitecture, so fixing this might be a bit hairy... Is anyone working or plans to work on this problem? I might give it a shot, but I would definitely need some guidance.

Best regards,

Jurij Smakov                                        [EMAIL PROTECTED]
Key: http://www.wooyd.org/pgpkey/                   KeyID: C99E03CC
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to