이유: 오류: 'sys_close' 함수의 암시적 선언?

이유: 오류: 'sys_close' 함수의 암시적 선언?

Debian 12에 최신 NVIDIA 드라이버를 설치하려고 합니다. 프로세스의 일부에는 일부 커널 모듈이 포함됩니다. 대부분은 오류 없이 컴파일되지만 마지막에 실패합니다(그게 무슨 뜻인지는 약 96%). 로그에는 이 오류가 여러 번 표시됩니다. 그 내용은 다음과 같습니다 nv-caps.c.

     CC [M]  /tmp/selfgz170986/NVIDIA-Linux-x86_64-525.125.06/kernel/nvidia/nv-caps.o
   /tmp/selfgz170986/NVIDIA-Linux-x86_64-525.125.06/kernel/nvidia/nv-caps.c: In function 'nv_cap_close_fd':
   /tmp/selfgz170986/NVIDIA-Linux-x86_64-525.125.06/kernel/nvidia/nv-caps.c:598:5: error: implicit declaration of function 'sys_close' [-Werror=implicit-function-declaration]
     598 |     sys_close(fd);
         |     ^~~~~~~~~
   cc1: some warnings being treated as errors

검색하여 nv-caps.c다음을 찾았습니다.

/* sys_close() or __close_fd() */
#include <linux/syscalls.h>

그리고 /usr/src/linux-source-6.1/include/linux/syscalls.h:

...
asmlinkage long sys_close(unsigned int fd);
...

따라서 의 암시적 선언에서 실패하는 이유를 이해할 수 있지만 sys_close()포함된 헤더 파일에서 상당히 명시적인 선언을 얻지 못하는 이유는 이해할 수 없습니다. 어떤 아이디어가 있나요?

관련 정보