事前に構築されたRPMパッケージでどのビルドフラグが使用されているかを確認できますか?

事前に構築されたRPMパッケージでどのビルドフラグが使用されているかを確認できますか?

私はCentOS 6仮想マシンでQuaggaダイナミックルーティングデーモンを使用してきました。--multipath=Xこのフラグを使用してRPMを構築するときにのみアクセスできる機能を使用したいと思います。私が使用しているRPMはCentOSリポジトリから構築されインポートされました。

RPMがこのフラグで構築されていることを確認する方法はありますか?または、ソースからビルドしてフラグを直接提供する必要がありますか?

RPMソースパッケージをダウンロードしましたが、指定された仕様ファイルでマルチパスパラメータが64に設定されていることを確認しました。だから必要ならば私が自分で作ることもできる。

ベストアンサー1

通常、ユーザー空間バイナリを構築するために使用される特定のコンパイラフラグはバイナリに保持されません。彼らはそうする理由はありません。

通常、バイナリの構築に使用されているコンパイラとコンパイラのバージョンを確認することでわかりますが、そのcrt0情報もカスタマイズできますcrt0

静的バイナリではないと仮定すると、バイナリが使用する共有オブジェクト(「.so」)とバイナリが使用する各共有オブジェクト内の機能を確認して、特定のコンパイル/ビルド時間オプションを推論できます。

ソースコードがある場合は、逆アセンブリのリストを調べて、バイナリをビルドするときに特定のオプションフラグが使用されているかどうかを合理的な精度で確認できます。

おすすめ記事