まったく維持されていなかった古いプロジェクトのビルドに取り組んでいます。それは多かれ少なかれ、一緒に石畳になっている何百もの独立したプロジェクトの寄せ集めです。当然、それは多くの不適切なことが起こっていることを意味します。
おそらく50〜100の実行可能ファイルと、約300の共有/静的ライブラリがあります。一部のライブラリは-mtフラグを使用して構築されています(sun studio; -pthreadsはgccと同等のようです)が、そうでないものもあります。
これは私には潜在的に問題があるようです。私が持っていてlibA.so
、libB.so
-Aが-mtで構築されたが、 Bでは構築されなかったとします。A&Bに対してリンクされているアプリケーションがシングルスレッドであれば、問題はないと思います(問題はありません)。ただし、アプリがスレッド化されている場合、この状況はワームの楽しい缶を開きます。
私は-mtを使ってすべてを構築する傾向があり、それを使って完了しました。ほとんどのオフィスはこの計画に同意していますが、反対者が1人います。私の期待は、これによってパフォーマンスが低下する可能性があることですが、現時点では、このプロジェクトの状態が悪いため、パフォーマンスはすでにひどいものになっています。だから私はそれについて心配していません。
要するに:これを行うことで潜在的な落とし穴はありますか?