시나리오 1 : 나는 (실제로, Elrepo에서 kernel-lt
) 바닐라 커널 3.10로 RHEL6에 IBM
GPFS
드라이버를 설치하려고 해요. 적절한 기능 검사
- 너무 많은/너무 적은 인수
- 유형이 일치하지
그들의 코드가 잘에 컴파일 그러한 회원에게주지 않습니다으로 인해 GPL 부분은 컴파일되지 않습니다 RHEL/Suse 커널이 이전 버전이거나 새로운 버전이지만 여기서 실패합니다.
시나리오 2 : I 증권 커널 RHEL6
에 오픈 소스 softiwarp
드라이버를 컴파일하기 위해 노력하고있어,하지만, 그러나, 바닐라 커널에 잘 컴파일은 시나리오 1과 같은 오류와 함께 실패합니다.
#if LINUX_KERNEL_VERSION >= 2061300
#define FOO <newer variant>
#else
#define FOO <older variant>
#endif
을하지만 자신의 3.10.101
바닐라 3.10.101
과 동일하지 않도록 RHEL 및 SUSE가 많은 백 포트 및 버그 수정이 그들의 기능 검사 헤더는 다음과 같이 있기 때문에
이 모든입니다.
기능을 확인하는 코드를 작성하는 방법은 버전 번호가 아닌입니까? 사용자 공간 프로그램에서 나는 AC_CHECK_MEMBER
/AC_CHECK_FUNC
무엇을?! Autotools는 libc 밑에 많이 의존합니다. 스스로 해킹하지 않고 어떻게 커널에서 사용할 수 있습니까? – 0andriy
@AndyShevchenko, "gcc"와'make'가 libc에 의존한다고 말할 수 있습니다. 어떻게 커널을 만들 수 있습니까?"실제로 Autoconf는 문제에 관련된 체크가 컴파일러를 통한 테스트에 의존하기 때문에, 내가 말했던 것처럼, 커널 헤더가 올바른 것인지 확인하기 만하면된다 .Autoconf는 많은 수표를 수행하는 방법을 알고있다. 커널 빌드 (예 : 도서관 수표)에 대해서는 이해가되지 않지만, 그것이 의미가있는 수표를 사용할 수 없다는 것을 의미하지는 않습니다. –
첫 단락 @JohnBollinger에 대한 나의 무지 추정이 마음에 들지 않지만, 나머지 대답은 말이 되네. 받아 들일거야. – basin