NetBSD-Bugs archive

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

port-macppc/46041: Kernel modules don't work (missing symbol uvmexp_pagesize)



>Number:         46041
>Category:       port-macppc
>Synopsis:       Kernel modules don't work (missing symbol uvmexp_pagesize)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-macppc-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 17 18:50:00 +0000 2012
>Originator:     Julio Merino
>Release:        NetBSD 6.0_BETA and current as of 20120216
>Organization:
        
>Environment:
        
        
System: NetBSD mini.julipedia.org 6.0_BETA NetBSD 6.0_BETA (MINI) #12: Thu Feb 
16 19:39:25 EST 2012 
builder%mini.julipedia.org@localhost:/home/builder/obj/usr/src/sys/arch/macppc/compile/MINI
 macppc
Architecture: powerpc
Machine: macppc
>Description:
        Attempting to load a kernel module under 6.0_BETA and current on
        a macppc machine results in the following errors:

            kobj_checksyms, 867: [compat]: linker error: symbol 
`uvmexp_pagesize' not found
            WARNING: module error: unable to affix module `compat'

        This problem seems to have been introduced by this change:

            
http://mail-index.netbsd.org/source-changes/2010/11/14/msg014470.html

        and was already reported here:

            http://mail-index.netbsd.org/current-users/2011/09/27/msg017871.html

        My understanding is that MIN_PAGE_SIZE and MAX_PAGE_SIZE are *not*
        defined in macppc, but they are in other powerpc platforms.  This
        may be causing some of the uvm_param.h logic to get confused.
>How-To-Repeat:
        Boot a recent NetBSD/macppc.  Notice module loading errors when you
        attempt a modload on, e.g. the compat module.
>Fix:
        Don't know.  The following makes modules work for me, but it's
        obviously wrong:

--- uvm_init.c  2012-02-16 14:04:49.000000000 -0500
+++ /home/jmmv/uvm_init.c       2012-02-16 14:04:32.000000000 -0500
@@ -57,11 +57,9 @@
 struct uvmexp uvmexp;  /* decl */
 struct uvm_object *uvm_kernel_object;
 
-#if defined(__uvmexp_pagesize)
 int *uvmexp_pagesize = &uvmexp.pagesize;
 int *uvmexp_pagemask = &uvmexp.pagemask;
 int *uvmexp_pageshift = &uvmexp.pageshift;
-#endif
 
 kmutex_t uvm_pageqlock;
 kmutex_t uvm_fpageqlock;

>Unformatted:
        
        


Home | Main Index | Thread Index | Old Index