sách gpt4 ai đã đi

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

In lại 作者:行者123 更新时间:2023-12-04 19:01:15 26 4
mua khóa gpt4 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 installphương pháp.

但是,我在构建 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 用户。

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

1 Câu trả lời

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

  • 覆盖特定构建 Đặc trưng 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
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com