できるだけサイズを小さくするように設計されたライブラリをコンパイルします。

できるだけサイズを小さくするように設計されたライブラリをコンパイルします。

組み込みシステムでldapsを実行するために必要なすべてのコードを「圧縮」する必要があります。したがって、3MiBのlybcryptoとほぼ700KiBのlibsslは多すぎます。

LDAPで読むことが最も重要な目標であるため、現在ldapsearchを試しています。

ld ldapsearchldapsearch が使用する共有オブジェクトを確認し、以下を発見しました。

670K /usr/local/lib64/libssl.so.1.1    **
3,3M /usr/local/lib64/libcrypto.so.1.1 **
 40K  /usr/lib64/libcrypt.so.1 -> libcrypt-2.17.so
104K /usr/lib64/libresolv.so.2 -> libresolv-2.17.so
2,1M /usr/lib64/libc.so.6 -> libc-2.17.so **
 19K /usr/lib64/libdl.so.2 -> libdl-2.17.so
139K /usr/lib64/libpthread.so.0 -> libpthread-2.17.so
 12K  usr/lib64/libfreebl3.so

したがって、マークが**最も重要です。

今、私はダウンロードしたソースコードからこのエントリをどのようにコンパイルするか、最適化されたサイズにコンパイルするためにgccにどのコマンドを与えなければならないのかわかりません。

また、共有オブジェクトを静的にリンクするためにスペースが節約されるかどうかを教えます。 (私が読んだところ、この場合、オプティマイザはリンク時に使用されていないコードの大部分を削除できるため、とにかくすべてのエントリポイントがコンパイルされます。)

試すことができる最初の最適化はそれを共用体文字列-Osに入れましたが、サイズはまだ同じです。cflagslib_cflagsConfigurations/00-base-templates.conf

編集 私が提案した別のオプションはを使用することですstrip。しかし、これを提供する方法がわかりません。.\config

関連情報