gpt4 book ai didi

objective-c - 使用旧 gcc : CFLAG adjustment? 构建 Debian/Ubuntu 软件包

转载 作者:行者123 更新时间:2023-12-04 19:01:15 26 4
gpt4 key购买 nike

我需要在 Debian 打包过程中缩短一些安全功能。我在这里解释了原因,知道您的第一 react 可能是“不要禁用安全功能”和“更新您的程序以使用新的 gcc 进行编译”。

我必须使用 gcc-4.6 来编译一些库(http://pj.freefaculty.org/Swarm),因为这是提供传统 Objective-C API 的最后一个 gcc 版本。之后,gcc 删除了传统的 header 。因此,“升级你的 gcc”是 Not Acceptable ,因为我们有一个使用传统 Objective-C 的非常大的代码库。

在 Ubuntu 17.04 中,gcc-4.6 不再可用,但我发现我可以通过从 Ubuntu “信任”中提取旧版本来安装它。它运行良好。我可以编译程序并安装它们老式的make install方法。

但是,我在构建 Debian 软件包时遇到了问题。当我运行 dpkg-buildpackage -rfakeroot ,就像我通常构建软件包一样,我遇到了失败,因为 Debian 打包系统插入了在 gcc-4.6 中不合法的 CFLAGS。特别是命令行包括-Wdate-time-fstack-protector-strong , 两者都与 gcc-4.6 不兼容。

这是 config.log 的一部分。

configure:3878: checking whether the C compiler works
configure:3900: gcc -g -O2 -fdebug-prefix-map=/home/pauljohn/LinuxDownloads/Debian/sources/amd64/swarm-Ubuntu17.04/swarm-2.4.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro conftest.c >&5
cc1: error: unrecognized command line option '-Wdate-time'
cc1: error: unrecognized command line option '-fstack-protector-strong

我检查了包含软件包的 debian 目录,发现这些标志没有手动插入那里。据我所知,它们与 dpkg-buildpackage 一起出现。 .

我正在尝试编译的这个库是一个旧程序。大约 15 到 20 年前,我们与圣达菲研究所合作研究了它。重写这段旧代码以使用新的 Objective-C 接口(interface)是不合理的,因此在 gcc-4.6 的限制内生活是很重要的。

到目前为止,我收到的最有用的建议是放弃 Debian/Ubuntu 架构,转而使用基于 RedHat 的架构,这样更容易容忍旧的 gcc。事实上,据我所知,在 RedHat 6 上,gcc-4.6 会比通常的要领先一些,而我仍然可以在 RedHat 7 上安装 gcc-4.6。但是,我不想通过这样做来排除 Ubuntu 用户。

关于如何导航的任何其他想法将不胜感激。

最佳答案

相关文档为man 1 dpkg-buildflags
你基本上有两个选择:

  • 覆盖特定构建 特点 dpkg 构建过程,希望删除正确的标志
    export DEB_BUILD_OPTIONS="hardening=-stackprotectorstrong reproducible=-timeless"
    dpkg-buildpackage -rfakeroot
  • 剥离特定构建 旗帜 从特定的构建变量
    export DEB_CPPFLAGS_STRIP="-Wdate-time"
    export DEB_CFLAGS_STRIP="-fstack-protector-string"
    export DEB_CXXFLAGS_STRIP="-fstack-protector-string"
    dpkg-buildpackage -rfakeroot

  • 您还可以通过配置文件使这两种方式持久化。

    关于objective-c - 使用旧 gcc : CFLAG adjustment? 构建 Debian/Ubuntu 软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185819/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com