Annotation of wikisrc/projects/project/verify_netbsd32.mdwn, revision 1.1

1.1     ! jmmv        1: [[!template id=project
        !             2: 
        !             3: title="Verification tool for NetBSD32"
        !             4: 
        !             5: contact="""
        !             6: [tech-toolchain](mailto:tech-toolchain@NetBSD.org)
        !             7: """
        !             8: 
        !             9: mentors="""
        !            10: [Jörg Sonnenberger](mailto:joerg@NetBSD.org)
        !            11: """
        !            12: 
        !            13: duration="3 months"
        !            14: 
        !            15: description="""
        !            16: NetBSD supports a number of platforms where both 32bit and 64bit execution is possible.
        !            17: The more well known example is the i386/AMD64 pair and the other important one is SPARC/SPARC64.
        !            18: On this platforms it is highly desirable to allow running all 32bit applications with a 64bit kernel.
        !            19: This is the purpose of the netbsd32 compatibility layer.
        !            20: 
        !            21: At the moment, the netbsd32 layer consists of a number of system call stubs and structure definitions written and maintained by hand.
        !            22: It is hard to ensure that the stubs and definitions are up-to-date and correct.
        !            23: One complication is the difference in alignment rules.
        !            24: On i386 uint64_t has a 32bit alignment, but on AMD64 it uses natural (64bit) alignment.
        !            25: This and the resulting padding introduced by the compiler can create hard to find bugs.
        !            26: 
        !            27: The goal of this project is to replace the manual labour with an automatic tool.
        !            28: This tool should allow both verification / generation of structure definitions for use in netbsd32 code as well as allow generation of system call stubs and conversion functions.
        !            29: For this purpose, the [Clang C parser](http://clang.llvm.org) or the [libclang frontend](http://llvm.org/devmtg/2010-11/Gregor-libclang.pdf) can be used to analyse the C code.
        !            30: Generated stubs should also ensure that no kernel stack data is leaked in hidden padding without having to resort to unnecessary large memset calls.
        !            31: """
        !            32: ]]
        !            33: 
        !            34: [[!tag gsoc]]
        !            35: [[!tag hard]]
        !            36: [[!tag userland]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb