【发布时间】:2017-05-25 11:06:19
【问题描述】:
在 glibc 源文件中相应的 sysdeps/"architecture" 目录下有 preconfigure(.in) 和 configure(.in) 脚本。 那么有谁知道它们的区别!?
【问题讨论】:
标签: glibc
在 glibc 源文件中相应的 sysdeps/"architecture" 目录下有 preconfigure(.in) 和 configure(.in) 脚本。 那么有谁知道它们的区别!?
【问题讨论】:
标签: glibc
preconfigure 文件被附加机制用来覆盖configure 脚本使用的信息:
任何端口的真正源代码都可以在 sysdeps/ 子目录中找到。如果您要直接合并它,这些应该正是进入主 libc 源代码树的内容。唯一的例外是文件 sysdeps/*/preconfigure 和 sysdeps/*/preconfigure.in;这些是此插件的配置片段使用的片段。这些的目的是在主 libc 配置的默认值不适用于某些机器时设置 $base_machine 等。其他一切都可以而且应该从一个普通的 sysdeps/.../configure 片段中完成,该片段仅在配置选择该 sysdeps 子目录时使用。每个端口在计算 sysdeps 目录列表之前需要进行一些特殊处理,都应该添加一个 sysdeps/CPU/preconfigure 文件;这可以手动编写或由 Autoconf 从 sysdeps/CPU/preconfigure.in 生成,并遵循 glibc 附加配置片段的规则。任何预配置文件都不应该对不相关的配置做任何事情,因此可以将不同的端口放入单个插件中而不会相互干扰。
(来自旧版本的 README 文件。)
当ports 子目录被删除后,对这个的需求就消失了,而且这个附加机制今天几乎完全没有使用。
【讨论】:
preconfigure 片段可能会影响主要配置代码(外部端口/sysdeps)会做什么。今天,我们将直接在主配置代码中进行必要的更改,但对于端口/附加组件,这是不可能的,因为它们是分开的。