On Tue, May 19, 2009 at 01:28:42AM +0300, Led wrote: > On Tuesday, 19 May 2009 01:25:50 Dmitry V. Levin wrote: > > On Mon, May 18, 2009 at 11:03:32PM +0300, Led wrote: > > > /usr/bin/ld: > > > /usr/lib64/gcc/x86_64-alt-linux/4.4.0/../../../../lib64/libdb-4.7.a(db_er > > >r.o): relocation R_X86_64_32 against `a local symbol' can not be used when > > > making a shared object; recompile with -fPIC > > > /usr/lib64/gcc/x86_64-alt-linux/4.4.0/../../../../lib64/libdb-4.7.a: > > > could not read symbols: Bad value > > > collect2: ld returned 1 exit status > > > > > > Это бага в сборке db4.7 или нужно как-то по-другому использовать > > > libdb-4.7.a ? > > > > Обычно статические библиотеки, которые сопровождают динамические, собирают > > без -fpic, поскольку с ними обычно линкуются статически. Например, > > так собирается rpm-static с -ldb. > > > > Другое дело, если для статической библиотеки нет парной динамической. > > Например, мне в понедельник показали libmysqld.a, который тоже > > скомпилирован без -fpic, однако libmysqld.so не существует, и это создаёт > > проблемы. > > Как бы то ни было, но сборка libdb-4.7 c явно указанным --with-pic для x86_64 > проблему решает. В Сизифе 49 исходных пакетов линкуются с -ldb, и проблемы не испытывают. Зачем вы линкуете libdb.a в ELF shared object при наличии libdb.so? Расскажите нам, какую проблему вы решаете. -- ldv