Hello I have the following link error adding new system calls to FreeBSD kernel when it uses send() or recv() with sockets. > linking kernel > rtp_unix.o: In function `_sys_send': > rtp_unix.o(.text+0x1c8): undefined reference to `send' Perhaps the problem is the system call's type in syscalls.master file (show it below), because the rtp_unix.c has calls to socket(), connect() and bind() and it doesn't have the same problem. Is the type COMPAT for compatibility with BSD4.3 system calls (COMPAT_43)? Why? You can look below in the files generated from syscalls.master file: init_sysent.c has the "compat" conditional statement for send() and recv(). And syscalls.c has entries "old.send" and "old.recv", for the other sockets system calls are different. What should I do to solve this link error ? Can I change COMPAT type for STD type in syscalls.master without problems? Thanks for your help. /* ---------------- syscalls.master ------------ */ ; Processed to created init_sysent.c, syscalls.c and syscall.h. ; Columns: number type nargs namespc name alt{name,tag,rtyp}/comments ; types: ; STD always included ; COMPAT included on COMPAT #ifdef 97 STD BSD { int socket(int domain, int type, int protocol); } 98 STD BSD { int connect(int s, caddr_t name, int namelen); } 99 CPT_NOA BSD { int accept(int s, caddr_t name, int *anamelen); } \ accept accept_args int 101 COMPAT BSD { int send(int s, caddr_t buf, int len, int flags); } 102 COMPAT BSD { int recv(int s, caddr_t buf, int len, int flags); } 104 STD BSD { int bind(int s, caddr_t name, int namelen); } /* ----------------- init_sysent.c ------------------ */ #ifdef COMPAT_43 #define compat(n, name) n, (sy_call_t *)__CONCAT(o,name) #else #define compat(n, name) 0, (sy_call_t *)nosys #endif { 3, (sy_call_t *)socket }, /* 97 = socket */ { 3, (sy_call_t *)connect }, /* 98 = connect */ { compat(3,accept) }, /* 99 = old accept */ { compat(4,send) }, /* 101 = old send */ { compat(4,recv) }, /* 102 = old recv */ { 3, (sy_call_t *)bind }, /* 104 = bind */ /* ---------------- syscalls.c ---------------- */ "socket", /* 97 = socket */ "connect", /* 98 = connect */ "old.accept", /* 99 = old accept */ "old.send", /* 101 = old send */ "old.recv", /* 102 = old recv */ "bind", /* 104 = bind */ +------------------------------------------------------------------+ | YONNY CARDENAS B. Apartado Aereo 22828 | | Systems Engineer Santafe de Bogota D.C. | | Colombia - South America | | Student M.Sc. Tel: +571 6095477 | | UNIVERSIDAD DE LOS ANDES mailto: [EMAIL PROTECTED] | | [EMAIL PROTECTED] | | ICQ #: 46933750 | +------------------------------------------------------------------+ UNIX is BSD, and FreeBSD is an advanced 4.4BSD __________________________________________________ Do You Yahoo!? Talk to your friends online with Yahoo! Messenger. http://im.yahoo.com To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message