임베디드 시스템에서 ldaps를 실행하는 데 필요한 모든 코드를 "압축"해야 합니다. 따라서 3MiB의 lybcrypto와 거의 700KiB의 libssl은 너무 많습니다.
LDAP에서 읽는 것이 가장 중요한 목표이기 때문에 현재 ldapsearch를 실험하고 있습니다.
ld ldapsearch
ldapsearch가 사용하는 공유 객체를 확인 하고 다음을 발견했습니다.
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
에 넣었 지만 크기는 여전히 같다는 것입니다.cflags
lib_cflags
Configurations/00-base-templates.conf
편집 내가 제안한 또 다른 옵션은 을 사용하는 것입니다 strip
. 그러나 이를 제공하는 방법을 모르겠습니다..\config