这是 blhc 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
blhc - 构建日志强化检查,检查构建日志是否缺少强化标志
概要
BLHC [选项] <dpkg-构建包 建立 日志 文件>..
商品描述
blhc 是一个小工具,用于检查构建日志是否缺少强化标志。 有执照
在 GPL 3 或更高版本下。
它旨在检查由 Debian 的 dpkg-buildpackage(或使用
dpkg-buildpackage 像 pbuilder 或 sbuild(用于官方构建的构建
日志)) 以帮助维护人员检测其软件包中缺少的强化标志。
目前只有 gcc 被检测为编译器。 如果其他编译器支持强化标志
同样,请报告他们。
如果没有输出,则不会丢失任何标志并且构建日志很好。
我们 读我 有关已执行检查、自动检测和限制的详细信息。
配置
- 全部 强制检查所有 +all (+pie, +bindnow) 强化标志。 默认情况下它是自动的
检测到。
- 拱 架构
设置具体架构(如amd64、armel等),自动禁用
强化标志在此架构上不可用。 自动检测,如果
使用 dpkg-buildpackage。
--宾德诺
强制检查所有 +bindnow 强化标志。 默认情况下,它是自动检测的。
--buildd
自动解析日志文件时构建的特殊模式。 下列
更改生效:
· 打印标签而不是正常警告,请参阅“BUILDD TAGS”以获取可能的列表
标签。
· 不要检查旧日志文件中的强化标志(如果 dpkg-dev << 1.16.1 是
检测到)。
· 不需要 Term::ANSIColor。
· 返回退出代码 0,除非出现错误(-I、-W 消息不算作
错误)。
- 颜色 对警告消息使用彩色 (ANSI) 输出。
--忽略拱 拱
忽略来自架构匹配的构建日志 拱. 拱 是一个字符串。
用于防止误报。 可以多次指定此选项。
--忽略拱标志 拱:旗
喜欢 --忽略标志, 但只忽略标志 拱.
--忽略拱线 拱:线
喜欢 --忽略线,但只忽略行 拱.
--忽略标志 旗
当编译器行中缺少特定标志时,不要打印错误。 旗
是一个字符串。
用于防止误报。 可以多次指定此选项。
--忽略线 正则表达式
忽略匹配给定 Perl 正则表达式的行。 正则表达式 自动锚定在
行的开头和结尾,以防止漏报。
注意: 不是检查输入行,而是检查显示在
警告(已解决行延续问题)。
用于防止误报。 可以多次指定此选项。
- 馅饼 强制检查所有 + 饼图强化标志。 默认情况下,它是自动检测的。
-h -? - 帮帮我
打印可用选项。
- 版
打印版本号和许可证。
自动检测 - 馅饼 和 --宾德诺 仅当至少一个命令使用
所需的强化标志(例如 -fPIE)。 然后所有其他命令也需要它。
示例
正常使用,解析单个日志文件。
blhc 路径/到/日志/文件
如果没有输出,则不会丢失任何标志并且构建日志很好。
解析多个日志文件。 退出代码对所有文件进行 ORed。
blhc 路径/到/目录/with/log/files/*
不要将缺少的“-g”视为错误:
blhc --ignore-flag -g 路径/到/日志/文件
不要将 kfreebsd-amd64 上缺少的“-pie”视为错误:
blhc --ignore-arch-flag kfreebsd-amd64:-pie 路径/to/log/file
忽略完全由“./script gcc file”组成的行,这会导致误报。
blhc --ignore-line '\./script gcc 文件' path/to/log/file
忽略行中某处匹配“./script gcc file”的行。
blhc --ignore-line '.*\./script gcc file.*' path/to/log/file
将 blhc 与 pbuilder 一起使用。
pbuilder path/to/package.dsc | 三通路径/日志/文件
blhc 路径/到/文件 || 回声标志丢失
构建 标签
以下标签用于 --buildd 模式。 在大括号中的附加数据是
显示。
使用 I 硬化包装器
该包使用 hardening-wrapper 拦截对 gcc 的调用并添加强化
旗帜。 构建日志不包含任何强化标志,因此无法检查
BLHC。
W-编译器标志隐藏 (隐藏线总结)
构建日志包含隐藏真实编译器标志的行。 例如:
CC test-ac
CC test-bc
CC 测试-cc
LD测试
大多数时候“export V=1”或“export verbose=1” Debian/规则 修复构建
带有隐藏的编译器标志。 有时“.SILENT”在 生成文件 必须删除。 并作为
最后的手段 生成文件 必须修补以删除隐藏真正编译器的“@”
命令。
W-dpkg-buildflags-缺失 (缺少标志的摘要)
CPPFLAGS、CFLAGS、CXXFLAGS、LDFLAGS 缺失。
我-无效-cmake-使用 (版本)
默认情况下,CMake 会忽略 CPPFLAGS,因此会丢失那些强化标志。 Debian 打补丁
版本 2.8.7-1 和 2.8.7-2 中的 CMake 尊重 CPPFLAGS,但此补丁被拒绝
通过上游,后来在 Debian 中恢复。 因此,这两个版本显示正确使用
CPPFLAGS 即使包没有正确处理它们(例如通过传递它们
到 CFLAGS)。 为了防止漏报,只需将这两个版本列入黑名单。
我没有编译器命令
未检测到编译器命令。 日志不包含或不包含
blhc 正确检测到(请在这种情况下报告错误)。
退出 状态
退出状态是一个“位掩码”,当出现错误条件时,每个列出的状态都是 ORed
发生以获得结果。
0 成功。
1 未找到编译器命令。
2 给 blhc 的参数/选项无效。
4 非详细构建。
8 缺少强化标志。
16 检测到硬化包装,未执行任何测试。
32 使用了无效的 CMake 版本。 看 我-无效-cmake-使用 在“BUILDD TAGS”下
详细解释。
使用 onworks.net 服务在线使用 blhc