Linux 커널 소스 코드에는 대소문자를 구분하지 않는 파일 시스템에 배치할 때 충돌이 발생하는 일부 겹치는 파일 이름이 있습니다. 6.4.7 기준 목록은 다음과 같습니다.
- 존재하다
include/uapi/linux/netfilter/
:xt_CONNMARK.h
그리고xt_connmark.h
xt_DSCP.h
그리고xt_dscp.h
xt_MARK.h
그리고xt_mark.h
xt_RATEEST.h
그리고xt_rateest.h
xt_TCPMSS.h
그리고xt_tcpmss.h
- 존재하다
include/uapi/linux/netfilter_ipv4/
:ipt_ECN.h
그리고ipt_ecn.h
ipt_TTL.h
그리고ipt_ttl.h
- 존재하다
include/uapi/linux/netfilter_ipv6/
:ip6t_HL.h
그리고ip6t_hl.h
- 존재하다
net/netfilter/
:xt_DSCP.c
그리고xt_dscp.c
xt_HL.c
그리고xt_hl.c
xt_RATEEST.c
그리고xt_rateest.c
xt_TCPMSS.c
그리고xt_tcpmss.c
- 존재하다
tools/memory-model/litmus-tests/
:Z6.0+pooncelock+poonceLock+pombonce.litmus
그리고Z6.0+pooncelock+pooncelock+pombonce.litmus
대소문자를 구분하지 않는 파일 시스템에 소스 트리를 채운 후 각 쌍의 한 파일이 다른 파일을 덮어씁니다. 분명히 netfilter가 활성화된 상태에서 Linux 커널을 빌드하는 것은 불가능합니다. 파일의 두 버전이 서로 다른 이름으로 저장되고 이러한 이름 변경을 확인하기 위해 소스 코드가 수정되더라도 API는 손상될 것입니다. 누가 그것을 원합니까?
netfilter 지원 없이 Linux 커널을 구축할 수 있습니까? 그 과정에서 또 어떤 어려움이 발생할 수 있나요?