以前のFreeBSDで静的実行可能ファイルを実行したときの奇妙な動作

以前のFreeBSDで静的実行可能ファイルを実行したときの奇妙な動作

私はFreeBSD 12で静的にcmakeプロジェクトをコンパイルし、それを試したときに同じシステム上で実行可能ファイルを試してみましたが、うまくいきましたldd executablenot a dynamic executableその後、FreeBSD 12を使用してvpsに移植し、期待どおりに機能しました。しかし、FreeBSD 8に移植したとき。executable --helpヘルプの印刷などの一部のコマンドは機能します。しかし、ネットワークに関連するいくつかの機能を試みると(ネットワークが設定されており、カールやPHPなどのさまざまなプログラムを試しました)、プロセスは自動的に分割エラーや何もせずに終了し、実行可能ファイルを実行した後に他のファイル名前がexecutable.core同じファイルに追加されます。礼拝規則

FreeBSDバージョンをコンパイルするのは今回が初めてなので、何を見逃しているのかわかりません。

ベストアンサー1

FreeBSD 12 には「ino64」という深刻な ABI 変更があります。 IIRC、libcは動的にリンクするときにそれを処理できるので、まずこれを試してみましょう。これがうまくいかない場合、唯一のオプションはFreeBSD 8でコンパイルすることです。

一般に、XメジャーバージョンでコンパイルされたバイナリはX-1バージョンで実行されると期待してはいけません。ただし、misc/compatXXパッケージをインストールすると、他の方法で行われます。

おすすめ記事