On Fri, 12 Apr 2002, Ilia Trendafilov wrote:

>     Zdraveite,
>   Poslednite dni si namerih nova zanimavka - pisaneto na LKMs
> Ne mi triabva za neshto seriozno, samo s poznavatelna cel. Obache imam
> slednia problem: dolnia mnogo prost source:
> ------------------------------------------
> #define MODVERSIONS
> #include <linux/modversions.h>
> #include <linux/kernel.h>
> #include <linux/module.h>
> 
> int init_module()
> {
>       printk("<1> Hello World Module Start\n");
>       return 0;
> }
> 
> void cleanup_module()
> {
>       printk("<1> Hello World Module Cleanup\n");
> }
> ------------------------------------------
> compiliram s komanden red:
> ------------------------------------------
> [edac kmod]$ gcc -c -DMODULE -D__KERNEL__ -DLINUX m1hw.c
> In file included from m1hw.c:3:
> /usr/include/linux/kernel.h:73: parse error before `size_t'
> /usr/include/linux/kernel.h:75: parse error before `size_t'
> In file included from /usr/include/asm/page.h:16,
>                  from /usr/include/asm/processor.h:13,
>                  from /usr/include/linux/prefetch.h:13,
>                  from /usr/include/linux/list.h:6,
>                  from /usr/include/linux/module.h:12,
>                  from m1hw.c:4:
> /usr/include/asm/mmx.h:10: parse error before `size_t'
> ------------------------------------------
> Rovih se iz .h files ama ne mojah da vidia neshto trevojno.
> gcc 2.95.3, 
  ^^^^^^^^^^ tova tochno kakvo e ?
> kernel 2.4.18
> /*
> #define CONFIG_MODULES 1
> #define CONFIG_MODVERSIONS 1
> #define CONFIG_KMOD 1
> */
> /usr/include/asm e symlink kym /usr/src/linux/include/asm, koeto
> pyk e symlink kym /usr/src/linux/include/asm-i386
> /usr/include/linux e symlink kum /usr/src/linux/include/linux
> /* ako gornite neshta imat niakakvo znachenie */
> 
        Slackware - ne pomnia kakuv e tochno (s libc-2.1.3.so):
root@mars:/tmp# gcc -Wall -c -DMODULE -D__KERNEL__ -DLINUX t.c
root@mars:/tmp# insmod t.o
 Hello World Module Start
root@mars:/tmp# rmmod t
 Hello World Module Cleanup
root@mars:/tmp# gcc --version
egcs-2.91.66 - tova syshto e kakto e doshlo ot slack-a
root@mars:/tmp# gcc-3.0.4 -Wall -c -DMODULE -D__KERNEL__ -DLINUX t.c
root@mars:/tmp# insmod t.o
 Hello World Module Start
root@mars:/tmp# rmmod t
 Hello World Module Cleanup
root@mars:/tmp# gcc-3.0.4 --version
3.0.4
kernel 2.4.17pre3

links sa po syshtia nachin i etc. 
Imal sym takiva problemi s po starite slackove, no tezi problemi vinagi sa
se okazvali ot gcc-to.
Imashe niakakvi griji iz includes na gcc no taka i ne mojah da nameria
tochno kude.
Kompilaciata na kernel module niama nishto obshto s tova kakvo libc
polzvash i negovite headers. niama da se linkva module kum libc-to a kum
kernela. Spored men tova si e 'compile insanity' da polzvash includes
ot libc kogato compilirash kernel module.

size_t se definira:
 - za userspace: sys/types.h koeto go vzima ot stddef.h na gcc-to za
syotvetnata platforma
 - za kernelspace: linux/types.h  
asm/posix_types.h:typedef unsigned int  __kernel_size_t;
linux/types.h:typedef __kernel_size_t size_t;
koeto pak si stava za syotvetnata platforma.

Za MODVERSION ti triabva makefile koeto da gleda kernel config-a,
imashe i example v threada.

-- 
have fun,
alex




===========================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers)
http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora

  • ... Ангел Вълков
  • ... Dimitar Peikov
    • ... George Danchev
      • ... Dimitar Peikov
        • ... Alexander Atanasov
          • ... Dimitar Peikov
      • ... Ilia Trendafilov
        • ... George Danchev
        • ... Ангел Вълков
    • ... Ангел Вълков
  • ... Alexander Atanasov
  • ... Alexander Atanasov
    • ... Dimitar Peikov

Reply via email to