On Mon, Aug 25, 2008 at 10:07 AM, Satish Eerpini <[EMAIL PROTECTED]> wrote:
> i have fixed up errors concerning the previous ones i have mentioned
> , ... but new errors have appeared , :
>
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> CHK include/linux/compile.h
> GEN .version
> CHK include/linux/compile.h
> UPD include/linux/compile.h
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> kdb/built-in.o: In function `kdb_inittab':
> /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386/kdb/kdbmain.c:3816:
> undefined reference to `__kdb_initcall_start'
> /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386/kdb/kdbmain.c:3822:
> undefined reference to `__kdb_initcall_end'
> make: *** [.tmp_vmlinux1] Error 1
>
> i have checked the code which corressponds to the above errors , it is
> something liket this :
>
> /* Any kdb commands that are not in the base code but are required
> * earlier than normal initcall processing.
> */
> call = & __kdb_initcall_start;
> while (call < & __kdb_initcall_end) {
> (*call)();
> call++;
> };
>
> , but i don't understand why it is showing an undefined reference
> error , __kdb_initcall_start and __kdb_initcall_end are defined in
> include/linux/kdbprivate.h as follows :
>
> #ifdef MODULE
> #define kdb_module_init(fn) module_init(fn)
> #define kdb_module_exit(fn) module_exit(fn)
> #else /* !MODULE */
> extern initcall_t __kdb_initcall_start, __kdb_initcall_end;
> #define kdb_module_init(fn) \
> static initcall_t __kdb_initcall_##fn __attribute_used__
> __attribute__ ((__section__ (".kdb_initcall.init"))) = fn;
> #define kdb_module_exit(fn) \
> static exitcall_t __kdb_exitcall_##fn __attribute_used__
> __attribute__ ((__section__ (".kdb_exitcall.exit"))) = fn;
> #endif /* MODULE */
>
> then what does the error signify ?
>
First of all, as you are using Cent OS kernel, perhaps there is some
difference between your source code and mine, maybe kdbprivate.h is
not included correctly.
Second of all, I think you can remove the lines.
/* Any kdb commands that are not in the base code but are required
* earlier than normal initcall processing.
*/
call = & __kdb_initcall_start;
while (call < & __kdb_initcall_end) {
(*call)();
call++;
};
They are not existing in the latest kdb patches.
Regards
Jason
>
> Thanks
> Satish
>
>
> --
> http://satish.playdrupal.com
> ---------------------------
> Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.
>
---------------------------
Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.