これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド blhc です。
プログラム:
NAME
blhc - ビルド ログの強化チェック、ビルド ログに強化フラグがないかチェックします
SYNOPSIS
ブルヘク [オプション] <dpkg-buildpackage ビルド ログ ファイル>..
DESCRIPTION
blhc は、欠落している強化フラグがないかビルド ログをチェックする小さなツールです。 認可されています
GPL 3 以降に準拠しています。
Debian の dpkg-buildpackage (または以下を使用するツール) によって生成されたビルド ログをチェックするように設計されています。
pbuilder や sbuild のような dpkg-buildpackage (公式の buildd ビルドに使用されます)
ログ)) を使用して、メンテナーがパッケージ内に欠落している強化フラグを検出できるようにします。
現時点ではコンパイラとして gcc のみが検出されます。 他のコンパイラが強化フラグをサポートしている場合
そちらもぜひご報告ください。
出力がない場合、欠落しているフラグはなく、ビルド ログに問題はありません。
見る README 実行されたチェック、自動検出、および制限事項の詳細については、を参照してください。
OPTIONS
- すべて すべての +all (+pie、+bindnow) 強化フラグを強制的にチェックします。 デフォルトでは自動です
検出された。
- アーチ 建築
特定のアーキテクチャ (amd64、armel など) を設定し、自動的に無効にします。
強化フラグはこのアーキテクチャでは使用できません。 次の場合に自動的に検出されます
dpkg-buildパッケージを使用します。
--バインドナウ
すべての +bindnow 強化フラグを強制的にチェックします。 デフォルトでは自動検出されます。
--build
ログ ファイルを自動的に解析するときの buildds の特別なモード。 次の
変更が有効になっています:
· 通常の警告の代わりにタグを出力します。可能なリストについては、「タグの構築」を参照してください。
タグ。
· 古いログ ファイルの強化フラグをチェックしないでください (dpkg-dev << 1.16.1 の場合)
検出されました)。
· Term::ANSIColor は必要ありません。
· エラーがない限り、終了コード 0 を返します (-I、-W メッセージはカウントされません)
エラー)。
- 色 警告メッセージには色付き (ANSI) 出力を使用します。
--ignore-arch アーチ
一致するアーキテクチャからのビルド ログを無視する アーチ. アーチ 文字列です。
誤検知を防ぐために使用されます。 このオプションは複数回指定できます。
--ignore-arch-flag アーチ:フラグ
いいね --ignore-フラグただし、オンのフラグのみを無視します アーチ.
--無視するアーチライン アーチ:ライン
いいね --無視行、ただし、上の行のみを無視します アーチ.
--ignore-フラグ フラグ
コンパイラ行に特定のフラグが欠落している場合にエラーを出力しません。 フラグ
文字列です。
誤検知を防ぐために使用されます。 このオプションは複数回指定できます。
--無視行 正規表現
指定された Perl 正規表現に一致する行を無視します。 正規表現 に自動的に固定されます
偽陰性を防ぐための行の先頭と末尾。
注意: 入力行ではなく、表示される行がチェックされます。
警告 (行の継続が解決されています)。
誤検知を防ぐために使用されます。 このオプションは複数回指定できます。
- パイ すべての +pie 硬化フラグを強制的にチェックします。 デフォルトでは自動検出されます。
-h -? - 助けて
利用可能なオプションを印刷します。
- バージョン
バージョン番号とライセンスを印刷します。
自動検出 - パイ と --バインドナウ 少なくとも XNUMX つのコマンドが
必要な強化フラグ (-fPIE など)。 その後、他のすべてのコマンドにも同様に必要になります。
例
通常の使用法では、単一のログ ファイルを解析します。
blhc パス/ログ/ファイルへ
出力がない場合、欠落しているフラグはなく、ビルド ログに問題はありません。
複数のログ ファイルを解析します。 終了コードはすべてのファイルに対して OR 演算されます。
blhc path/to/directory/with/log/files/*
「-g」が欠落していることをエラーとして扱わないでください。
blhc --ignore-flag -g path/to/log/file
kfreebsd-amd64 で「-pie」が欠落していることをエラーとして扱わないでください。
blhc --ignore-arch-flag kfreebsd-amd64:-pie path/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
pbuilder では blhc を使用します。
pbuilder パス/to/package.dsc | T パス/ログ/ファイル
blhc パス/ファイルへ || エコーフラグがありません
構築しました タグ
以下のタグが使用されています --build モード。 中括弧内は追加データです。
表示されます。
I-硬化ラッパー使用
パッケージは、gcc への呼び出しをインターセプトし、強化を追加する強化ラッパーを使用します。
フラグ。 ビルド ログには強化フラグが含まれていないため、ビルド ログをチェックすることはできません。
blhc。
W-コンパイラ-フラグ-非表示 (隠線まとめ)
ビルド ログには、実際のコンパイラ フラグを隠す行が含まれています。 例えば:
CCテストAC
CCテスト-BC
CCテスト-cc
LDテスト
ほとんどの場合、「export V=1」または「export verbose=1」のいずれかになります。 debian / rules ビルドを修正する
非表示のコンパイラ フラグを使用します。 場合によっては「.SILENT」 メークファイル 削除する必要があります。 そしてとして
最後の手段 メークファイル 実際のコンパイラを隠している「@」を削除するにはパッチを適用する必要があります
コマンド。
W-dpkg-buildflags-missing (不足しているフラグの概要)
CPPFLAGS、CFLAGS、CXXFLAGS、LDFLAGS がありません。
I-invalid-cmake-used (バージョン)
デフォルトでは、CMake は CPPFLAGS を無視するため、これらの強化フラグが欠落します。 Debian パッチ適用済み
バージョン 2.8.7-1 および 2.8.7-2 の CMake は CPPFLAGS を尊重しますが、このパッチは拒否されました
アップストリームによって作成され、後に Debian で元に戻されました。 したがって、これら XNUMX つのバージョンは、次の正しい使用法を示しています。
CPPFLAGS は、パッケージがそれらを正しく処理しない場合でも (たとえば、それらを渡すことによって)
CFLAGS に)。 誤検知を防ぐには、これら XNUMX つのバージョンをブラックリストに登録するだけです。
コンパイラコマンドを使用しない
コンパイラ コマンドが検出されませんでした。 ログに何も含まれていないか、ログに含まれていないかのどちらかです
blhc によって正しく検出されました (この場合はバグを報告してください)。
EXIT ステータス
終了ステータスは「ビットマスク」であり、リストされた各ステータスは、エラー条件が発生した場合に OR されます。
結果を取得するために発生します。
0 成功。
1 コンパイラ コマンドが見つかりませんでした。
2 blhc に無効な引数/オプションが指定されました。
4 非冗長ビルド。
8 硬化フラグがありません。
16 硬化ラッパーが検出されましたが、テストは実行されませんでした。
32 無効な CMake バージョンが使用されました。 見る I-invalid-cmake-used 「タグの構築」の下にある
詳しい説明。
onworks.net サービスを使用してオンラインで blhc を使用する