Реализация системного вызова Minix 3.3 как вызова библиотеки libc

Я следовал этому руководству, чтобы создать системный вызов в Minix.

http://homepages.cs.ncl.ac.uk/nick.cook/csc2025/minix/syscall-exercise1.html

Я могу правильно использовать системный вызов, когда использую _syscall, и теперь я хотел бы создать библиотечную функцию libc, чтобы ее можно было легко использовать. Однако выполнение последних шагов учебника у меня не работает. Когда я пытаюсь скомпилировать свой код, я получаю неопределенную ссылку на [функция моей библиотеки]. Я добавил прототип в unistd.h, я думаю, что что-то не так в моем Makefile. Все, что я сделал, это добавил SRCS += myfile.c. Есть ли что-то еще, что мне нужно сделать?


person SpyMachine    schedule 25.02.2016    source источник
comment
Чтобы уточнить, myfile.c существует, содержит мою библиотечную функцию и находится в той же папке, что и Makefile.inc.   -  person SpyMachine    schedule 25.02.2016
comment
Сможете ли вы добиться успеха, если точно будете следовать инструкциям (т. е. реализовывать библиотечную функцию с именем printmsg() в исходном файле с именем printmsg.c?   -  person Michael Burr    schedule 25.02.2016
comment
Кажется, он немного устарел, я следил за ним как мог.   -  person SpyMachine    schedule 26.02.2016


Ответы (1)


Итак, я поместил SRCS+=... в libc/sys/Makefile.inc, но этот Makefile в основном находится под условным условием, которое, как я только что понял, ложно. Я перешел на libc/misc и добавил туда все, и все заработало.

person SpyMachine    schedule 26.02.2016