Re: Unresolved symbol mc_giveup_altivec


Subject: Re: Unresolved symbol mc_giveup_altivec
From: Greg Painter (gpainte717@earthlink.net)
Date: Wed Aug 01 2001 - 22:32:38 MDT


Tony Howard wrote:
>
> I am running kernel 2.2.19, and I get the following error when I try to
> start mol 0.9.58 and 0.9.59:
>
> =================================================================
> Mac-on-Linux 0.9.58 <www.maconlinux.org>
> (C) 1997-2001 Samuel Rydh <samuel@ibrium.se>
> =================================================================
> Loading the Mac-on-Linux kernel module.
> /usr/lib/mol/modules/mol.o: unresolved symbol mc_giveup_altivec
> ===============================================================================
> Failed to load the module - look for updates at
> <http://www.maconlinux.org>
> If there are no updates, please send a bug report to <samuel@ibrium.se>
> ===============================================================================
>
> This happens with precompiled versions from the mol web site, as well as
> ones I compiled myself. Here is the output from lsmod, nm, and ksyms. I
> don't understand exactly what ksyms is getting at, but I think it may be
> part of the problem:
>
> [root@ranger modules]# lsmod
> Module Size Used by
> molsymglue0 480 0 (unused)
>
> [root@ranger modules]# nm /usr/lib/mol/modules/molsymglue0.o|grep altivec
> 00000048 ? __kstrtab_mc_giveup_altivec
> 00000020 ? __ksymtab_mc_giveup_altivec
> 0000006c ? __module_parm_mc_giveup_altivec
> 00000010 G mc_giveup_altivec
>
> [root@ranger modules]# ksyms -a|grep altivec
> cd1261d8 mc_giveup_altivec_R__ver_mc_giveup_altivec [molsymglue0]
> c00039d0 giveup_altivec_R__ver_giveup_altivec
>
> Tony

I encountered the above problem a couple of month back when I compiled
a generic 2.2.19 and installed mol-0.9.58. In the kernel_module/init.c
of the mol source I modified the compat_initialize_22 subroutine.
Commenting out the code below solved my unresolved variable.

I have a beige G3. Some one else with a beige G3 was having the same
problem. He reported that this modification did not fix his unresolved
variable problem.

I have no idea what the 'altivec registers' and how to compile the mol
source for a specific kernel.

static void
compat_initialize_22( void )
{
    /* HACK: the __current_mm_offs is dependent upon if the altivec registers
     * are present or not. The following code 'fixes' the offset if the
     * module is not run on the kernel it was compiled for.
     */
    __current_mm_offs = offsetof(struct task_struct, mm);

//#ifdef CONFIG_ALTIVEC
// if( !mc_giveup_altivec ) {
// __current_mm_offs = 856;
// printk("MOL: Non-ALTIVEC kernel detected, using hardcoded offset\n");
// }
// #else
// if( mc_giveup_altivec ) {
// __current_mm_offs = 1400;
// printk("MOL: ALTIVEC kernel detected, using hardcoded offset\n");
// }
// #endif
}

-- 
glp, USA



This archive was generated by hypermail 2a24 : Wed Aug 01 2001 - 21:40:27 MDT