Я пытаюсь интегрировать в свой проект последнюю версию 2.80 dnsmasq . Платформа Linux 2.6.32.
Компиляция с кросс-компилятором arm-none-linux-gnueabi-gcc выдает эту ошибку:
inotify.o: In function `inotify_dnsmasq_init':
inotify.c:(.text+0x514): undefined reference to `inotify_init1'
Кажется, что функция inotify_init1 () не поддерживается в этой платформе.
Мне интересно, смогу ли я написать эту функцию самостоятельно.
int inotify_init1(int flags)
{
int flags1 = 0;
int inotify_fd = inotify_init();
if ((inotify_fd != -1) && (flags != 0))
{
if((flags1 = fcntl(inotify_fd, F_GETFL)) != -1)
{
fcntl(inotify_fd, F_SETFL, flags1 | flags);
}
}
return inotify_fd;
}
Будет ли кусок кода делать работу?
Обновление:
согласно справочной странице inotify_init , inotify_init1 () был добавлен в glibc в версии 2.9. Я работаю только с glibc версии 2.8
С другой стороны, я вижу, что inotify_init1 присутствует в нескольких файлах в ядре:
1) /fs/notify/inotify/inotify_user.c
/* inotify syscalls */
SYSCALL_DEFINE1(inotify_init1, int, flags)
{
...
}
2) /kernel/sys_ni.c
cond_syscall(sys_inotify_init1);
Я понимаю, что мне чего-то не хватает, но я не знаю, создана ли соответствующая библиотека или правильно ли она связана с файлами сборки dnsmasq.
Спасибо за совет.