Re: Implement new system call in 2.6 (now 2.4)

From: jensen galan
Date: Wed May 04 2005 - 14:24:50 EST


I found the thread below in the archive, and I am
having the same problem trying to implement a new
system call in a 2.4 kernel. How did you end up
fixing this?

I am adding a simple call to time.c, and have also
followed the instructions at:

http://fossil.wpi.edu/docs/howto_add_systemcall.html

I am getting the error:

/tmp/ccYYs1zB.o(.text+0x20): In function
`pedagogictime':
: undefined reference to `errno'
collect2: ld returned 1 exit status

(Yes, this is the lab from the Nutt book ;>)

Thank you.

Jensen

> On Wed, 25 Feb 2004 11:07:41 +0100 (CET) Kristian
Sørensen wrote:
>
> | Hi all!
> |
> | How do I invoke a newly created system call in the
2.6.3 kernel from
> | userspace?
> |
> | The call is added it arch/i386/kernel/entry.S and
include/asm/unistd.h
> | and the call is implemented in a security module
called Umbrella(*).
> |
> | The kernel compiles and boots nicely.
> |
> | The main problem is now to compile a userspace
program that invokes this
> | call. The guide for implementing the systemcall at

> |
http://fossil.wpi.edu/docs/howto_add_systemcall.html
> | has been followed, which yields the following
userspace program:
> |
> | // test.h
> | #include
"/home/snc/linux-2.6.3-umbrella/include/linux/unistd.h"

> | _syscall1(int, umbrella_scr, int, arg1);
> |
> | // test.c
> | #include "test.h"
> | main() {
> | int test = umbrella_scr(1);
> | printf ("%i\n", test);
> | }
> |
> | When compiling:
> |
> | gcc -I/home/snc/linux-2.6.3/include test.c
> |
> | /tmp/ccYYs1zB.o(.text+0x20): In function
`umbrella_scr':
> | : undefined reference to `errno'
> | collect2: ld returned 1 exit status
> |
> |
> | It seems like a little stupid error :-( Does some
of you have a solution?
> |
> Hm, it builds for me with no errors.
> I'm using gcc version 3.2. Maybe it's a tools issue.

>
> |
> | (*) Umbrella is a security project for securing
handheld devices. Umbrella
> | for implements a combination of process based
mandatory access control
> | (MAC) and authentication of files. This is
implemented on top of the Linux
> | Security Modules framework. The MAC scheme is
enforced by a set of
> | restrictions for each process.
> | More information on http://umbrella.sf.net
>
>
> --
> ~Randy



__________________________________
Yahoo! Mail Mobile
Take Yahoo! Mail with you! Check email on your mobile phone.
http://mobile.yahoo.com/learn/mail
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/