2015-11-27 72 views
0

表演「讓」的時候,我非常接近編譯了VMWare guest GL driver在Fedora 23的64位(最新使用的內核生皮鞭),但我得到「make」中的錯誤:爲什麼我收到「錯誤:函數隱式聲明」上vmwgfx

$ cd $TOP/vmwgfx 
$ make 

make -C /lib/modules/4.4.0-0.rc2.git2.2.fc24.x86_64/source SUBDIRS=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules 
make[1]: Entering directory '/usr/src/kernels/4.4.0-0.rc2.git2.2.fc24.x86_64' 
    CC [M] /home/IRUser/github/vmwgfx/drm_lock.o 
/home/IRUser/github/vmwgfx/drm_lock.c: In function ‘drm_lock’: 
/home/IRUser/github/vmwgfx/drm_lock.c:124:3: error: implicit declaration of function ‘block_all_signals’ [-Werror=implicit-function-declaration] 
    block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask); 
^
/home/IRUser/github/vmwgfx/drm_lock.c: In function ‘drm_unlock’: 
/home/IRUser/github/vmwgfx/drm_lock.c:183:2: error: implicit declaration of function ‘unblock_all_signals’ [-Werror=implicit-function-declaration] 
    unblock_all_signals(); 
^
cc1: some warnings being treated as errors 
scripts/Makefile.build:258: recipe for target '/home/IRUser/github/vmwgfx/drm_lock.o' failed 
make[2]: *** [/home/IRUser/github/vmwgfx/drm_lock.o] Error 1 
Makefile:1388: recipe for target '_module_/home/IRUser/github/vmwgfx' failed 
make[1]: *** [_module_/home/IRUser/github/vmwgfx] Error 2 
make[1]: Leaving directory '/usr/src/kernels/4.4.0-0.rc2.git2.2.fc24.x86_64' 
Makefile:139: recipe for target 'modules' failed 
make: *** [modules] Error 2 

我對Makefile及其語法不是很熟悉。這裏會發生什麼?

+0

最有可能你的內核CFLAGS配置爲使用'-Wimplicit功能,declaration'和'-Werror',而這個驅動程序使用隱式聲明的,因此不能用這個標誌進行編譯。在內核源碼目錄中檢查你的'.config'。 – keltar

+0

嗯,我不這麼認爲:'$貓/usr/src/kernels/4.4.0-0.rc2.git2.2.fc24.x86_64/.config | grep的CFLAGS'給我'CONFIG_ARCH_HWEIGHT_CFLAGS =「 - FCALL保存的-RDI -fcall保存的-RSI -fcall保存的-RDX -fcall保存的-RCX -fcall保存的-R8 -fcall保存的-R9 -fcall-saved- r10 -fcall-saved-r11「' – fredrik

+0

是的,我可能錯了,它是內核目錄中的'Makefile'。我也有'-Werror-implicit-function-declaration',所以它可能在後來的內核版本中被添加爲默認值。但無論如何,我沒有得到一個錯誤,'block_all_signals'在'sched.h'中聲明沒有任何問題。沒有內核4.4(只有4.3)來測試它,試着在'include/linux/sched.h'中嘗試''block_all_signals',它可能被刪除了。 – keltar

回答

0

的解決方案,這是安裝4.3的內核,而不是4.4內核。

相關問題