Я пытаюсь собрать mvfs чтобы можно было запускать IBM Rational ClearCase на компьютере CentOS 6.4. У меня установлены все зависимости, поэтому я перехожу в папку mvfs_src и получаю следующую ошибку при запуске make:

/var/adm/rational/clearcase/mvfs/mvfs_src/mvfs_linux_mvops.c: In function ‘mvop_linux_open_kernel’:
/var/adm/rational/clearcase/mvfs/mvfs_src/mvfs_linux_mvops.c:1454: error: implicit declaration of function ‘get_empty_filp’
cc1: warnings being treated as errors
/var/adm/rational/clearcase/mvfs/mvfs_src/mvfs_linux_mvops.c:1454: error: assignment makes pointer from integer without a cast
make[2]: *** [/var/adm/rational/clearcase/mvfs/mvfs_src/mvfs_linux_mvops.o] Error 1
make[1]: *** [_module_/var/adm/rational/clearcase/mvfs/mvfs_src] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.32-358.14.1.el6.x86_64'
make: *** [all] Error 2

Как это исправить?

1 ответ1

0

Начиная с e81e3f4dca6c54116a24aec217d2c15c6f58ada5 (которая вошла в Linux v2.6.33), функция get_empty_filp() становится внутренней и больше не экспортируется в модули:

commit e81e3f4dca6c54116a24aec217d2c15c6f58ada5
Author: Eric Paris 
Date:   Fri Dec 4 15:47:36 2009 -0500

    fs: move get_empty_filp() deffinition to internal.h

    All users outside of fs/ of get_empty_filp() have been removed.  This patch
    moves the definition from the include/ directory to internal.h so no new
    users crop up and removes the EXPORT_SYMBOL.  […]

Похоже, что тот же коммит был перенесен в ядро CentOS 2.6.32-358.14.1.el6, так как он имеет ту же функцию, объявленную в fs/internal.h:

linux-2.6.32-358.14.1.el6/fs/internal.h:88:extern struct file *get_empty_filp(void);

Другими словами, не только mvfs устарела, она даже устарела для CentOS. Я предполагаю, что единственный способ исправить это - получить более новую версию mvfs (если она существует), или ... понизить ядро.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .