I can't find file "/usr/lib/kernex.exp" in my AIX 6.1 when I write a Kernel Extension

709 views Asked by At

I worte a" hello world "aix kernel extension, and then I "make" it. my makefile is as follow:

all:kernext_hello
kernext_hello:kernext_hello.c
        gcc -D_KERNEL -maix64 -c kernext_hello.c -o kernext_hello.o
        ld -b64 -o kernext_hello kernext_hello.o -e hello_init -bI:/usr/lib/kernex.exp -lsys -lcsys
clean:
        rm -f *.o kernext_hello 2> /dev/null

And the error info :

gcc -D_KERNEL -maix64 -c kernext_hello.c -o kernext_hello.o
        ld -b64 -o kernext_hello kernext_hello.o -e hello_init -bI:/usr/lib/kernex.exp -lsys -lcsys
ld: 0706-005 Cannot find or open file: kernext_hello.o
        ld: open(): A file or directory in the path name does not exist.
ld: 0706-006 Cannot find or open library file: -l sys
        ld: open(): A file or directory in the path name does not exist.
ld: 0706-006 Cannot find or open library file: -l csys
        ld: open(): A file or directory in the path name does not exist.
ld: 0706-003 Cannot find or read import file: /usr/lib/kernex.exp
        ld: accessx(): A file or directory in the path name does not exist.
make: 1254-004 The error code from the last command is 255.

So I am wondering that there are not "libsys", "libcsys" and "/usr/lib/kernex.exp" in my aix 6.1.

So could you guys help me?

1

There are 1 answers

1
pedz On BEST ANSWER

You probably need to install bos.adt.all. kernexp.exp is part of bos.adt.syscalls but I would install the whole set to reduce frustration.