From mboxrd@z Thu Jan 1 00:00:00 1970 From: miloody@gmail.com (loody) Date: Thu, 23 Jun 2011 22:06:08 +0800 Subject: make error in building sample code! In-Reply-To: References: <70ecf6a50908040552u174954ddoe202fe8c937db40b@mail.gmail.com> Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org hi : sorry for pick up this old thread. 2009/8/4 Robert P. J. Day : > On Tue, 4 Aug 2009, Greg Peter wrote: > >> Hello, >> >> I am trying to build LDD3 sample code, just to get expirement around. >> (Obtained from the link -> >> http://oreilly.com.cn/codeexample/ldd3/examples.tar.gz). >> >> But I get the following errors when I run make: (PS note, I have the kernel >> source and headers installed) >> >> >> #examples> make >> for n in misc-progs misc-modules skull scull scullc sculld scullp scullv >> sbull snull short shortprint pci simple usb tty lddbus; do make -C $n || >> exit 1; done >> make[1]: Entering directory `/home/gregp/examples/misc-progs' >> cc -O2 -fomit-frame-pointer -Wall >> -I/lib/modules/2.6.27.23-0.1-pae/build/include??? setlevel.c?? -o setlevel >> setlevel.c:30: error: expected declaration specifiers or ?...? before ?syslog? >> setlevel.c:30: error: expected declaration specifiers or ?...? before ?type? >> setlevel.c:30: error: expected declaration specifiers or ?...? before ?bufp? >> setlevel.c:30: error: expected declaration specifiers or ?...? before ?len? >> setlevel.c:30: warning: data definition has no type or storage class >> setlevel.c:30: warning: type defaults to ?int? in declaration of ?_syscall3? >> setlevel.c: In function ?main?: >> setlevel.c:41: warning: implicit declaration of function ?syslog? >> make[1]: *** [setlevel] Error 1 >> make[1]: Leaving directory `/home/gregp/examples/misc-progs' >> make: *** [subdirs] Error 1 > > ?those userspace programs still use the now-deprecated and > unsupported _syscall macros. ?they should be rewritten to use > syscall() instead. ?see: > > http://www.kernel.org/doc/man-pages/online/pages/man2/_syscall.2.html > I can compile the attach lddbus.c successfully but fail to insert the module. it is because device_register return a non-zero value. I have also checked other driver to compare the procedure of initial "struct device", but I cannot see the difference. take scsi_debug.c for example: static struct device pseudo_primary = { .init_name = "pseudo_0", .release = pseudo_0_release, }; static int __init scsi_debug_init(void) { ...... ret = device_register(&pseudo_primary); if (ret < 0) { printk(KERN_WARNING "scsi_debug: device_register error: %d\n", ret); goto free_vm; } ..... } is there any CONFIG in kernel i should open for fixing this problem? -- Regards, -------------- next part -------------- A non-text attachment was scrubbed... Name: lddbus.c Type: text/x-csrc Size: 3926 bytes Desc: not available Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110623/db5310c2/attachment-0001.bin