[devel] glibc-2.8.90-alt1

Kirill A. Shutemov =?iso-8859-1?q?kirill_=CE=C1_shutemov=2Ename?=
Вт Окт 21 18:21:58 MSD 2008


On Tue, Oct 21, 2008 at 05:46:42PM +0400, Sergey Vlasov wrote:
> On Tue, Oct 21, 2008 at 03:17:22PM +0300, Kirill A. Shutemov wrote:
> > Споткнулся на странной проблеме. При линковке, к примеру, libcrypt.so
> > получаю кучу сообoщений об ошибке следующего вида:
> > 
> > /usr/lib/gcc/arm-alt-linux-gnueabi/4.3.2/libgcc.a(_udivsi3.o): In function
> > `__aeabi_uidiv':
> > /usr/src/RPM/BUILD/gcc-4.3.2-20081008/obj-arm-alt-linux-gnueabi/arm-alt-linux-gnueabi/libgcc/../../../libgcc/../gcc/config/arm/lib1funcs.asm:810:
> > multiple definition of `__udivsi3'
> > /usr/lib/gcc/arm-alt-linux-gnueabi/4.3.2/libgcc.a(_udivsi3.o):/usr/src/RPM/BUILD/gcc-4.3.2-20081008/obj-arm-alt-linux-gnueabi/arm-alt-linux-gnueabi/libgcc/../../../libgcc/../gcc/config/arm/lib1funcs.asm:810:
> > first defined here
> > 
> > Т.е. что-то типа конфликта libgcc.a с libgcc.a %-(
> > 
> > Линковка происходит командой вида:
> > gcc -shared -static-libgcc -Wl,-O1  -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.3  -B/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/csu/  -Wl,--version-script=/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/libcrypt.map -Wl,-soname=libcrypt.so.1 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -e __libc_main -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/math -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/elf -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/dlfcn -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/nss -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/nis -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/rt -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/resolv -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/crypt -L/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/nptl -Wl,-rpath-link=/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/math:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/elf:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/dlfcn:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/nss:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/nis:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/rt:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/resolv:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/crypt:/usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/nptl -o /usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/crypt/libcrypt.so -T /usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/shlib.lds /usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/csu/abi-note.o -Wl,--whole-archive /usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/crypt/libcrypt_pic.a  /usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/elf/interp.os /usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/libc.so /usr/src/RPM/BUILD/glibc-2.8.90-alt1/build-arm-linux/libc_nonshared.a
> > 
> > Я не знаю, зачем нужен -Wl,--whole-archive, но если его удалить -- помогает.
> 
> Нужен для libcrypt_pic.a - там таким странным образом собирают библиотеки
> (добавляют файлы в .a частями, а потом из них собирают .so - видимо, чтобы
> не наступить на ограничение размера командной строки при сборке libc.so из
> большого количества мелких файлов).  По идее после libcrypt_pic.a должно
> быть -Wl,--no-whole-archive, чтобы остальное линковалось обычным образом.

Спасибо. Уже разобрался. Была ARM-специфичная проблема с configure.

-- 
Regards,  Kirill A. Shutemov
 + Belarus, Minsk
 + ALT Linux Team, http://www.altlinux.com/
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20081021/1587a21e/attachment.bin>


Подробная информация о списке рассылки Devel