Android NDK 17 (и я полагаю, более ранние версии), содержит несколько версий libgcc.a
:
android-ndk-r17b/toolchains/arm-linux-androideabi-4.9$ find -iname
libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/hard/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb/hard/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/thumb/libgcc.a
То же самое для libatomic.a
android-ndk-r17b/toolchains/arm-linux-androideabi-4.9$ find -iname libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/hard/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb/hard/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/thumb/libatomic.a
Каждый из содержащихся каталогов содержит полный набор crtbegin.o
, crtend.o
и т. Д. *
$ ls ./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/
crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o libgcc.a libgcov.a
Проверяя каждый, они имеют разный размер (и я предполагаю содержание).
- В чем различия между этими версиями?
- Какие из них должны использоваться компоновщиком для создания действительного
.so
файла?