是否可以在不区分大小写的文件系统上构建 Linux 内核?

是否可以在不区分大小写的文件系统上构建 Linux 内核?

Linux 内核源代码有一些重叠的文件名,当放在不区分大小写的文件系统上时,这些文件名会崩溃。以下是截至 6.4.7 的列表:

  • include/uapi/linux/netfilter/
    • xt_CONNMARK.hxt_connmark.h
    • xt_DSCP.hxt_dscp.h
    • xt_MARK.hxt_mark.h
    • xt_RATEEST.hxt_rateest.h
    • xt_TCPMSS.hxt_tcpmss.h
  • include/uapi/linux/netfilter_ipv4/
    • ipt_ECN.hipt_ecn.h
    • ipt_TTL.hipt_ttl.h
  • include/uapi/linux/netfilter_ipv6/
    • ip6t_HL.hip6t_hl.h
  • net/netfilter/
    • xt_DSCP.cxt_dscp.c
    • xt_HL.cxt_hl.c
    • xt_RATEEST.cxt_rateest.c
    • xt_TCPMSS.cxt_tcpmss.c
  • tools/memory-model/litmus-tests/
    • Z6.0+pooncelock+poonceLock+pombonce.litmusZ6.0+pooncelock+pooncelock+pombonce.litmus

将源树填充到不区分大小写的文件系统中后,每一对中的一个文件将覆盖另一个文件。显然,在启用 netfilter 的情况下构建 Linux 内核是不可能的。即使文件的两个版本都以不同的名称保存,并且修改源代码以确认这些重命名,API 也会被破坏,谁想要这样呢?

是否可以在没有 netfilter 支持的情况下构建 Linux 内核?在此过程中还可能出现哪些其他挑战?

相关内容