【问题标题】:What is the difference between preconfigure and configure in glibc?glibc 中的 preconfigure 和 configure 有什么区别?
【发布时间】:2017-05-25 11:06:19
【问题描述】:

在 glibc 源文件中相应的 sysdeps/"architecture" 目录下有 preconfigure(.in) 和 configure(.in) 脚本。 那么有谁知道它们的区别!?

【问题讨论】:

    标签: glibc


    【解决方案1】:

    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脚本里的这些内容放到ports/sysdeps对应的子目录下各自不同的configure脚本中!?
    • preconfigure 片段可能会影响主要配置代码(外部端口/sysdeps)会做什么。今天,我们将直接在主配置代码中进行必要的更改,但对于端口/附加组件,这是不可能的,因为它们是分开的。
    • 是的,你是对的!我已经查看了主要的配置脚本,它包含检查 sysdeps 预配置片段的代码。
    猜你喜欢
    • 1970-01-01
    • 2016-05-03
    • 2013-04-26
    • 2013-08-11
    • 2011-07-05
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2010-10-02
    相关资源
    最近更新 更多