[devel] I: rpm 4.0.4-alt98.49, latter rain
REAL
root на mmedia2.kemsu.ru
Вт Окт 5 09:30:18 UTC 2010
Alexey Tourbin пишет:
>> overlinked libraries означает, что ELF cлинкован с тем, с чем не должен.
>> underlinked libraries означает, что ELF не cлинкован с тем, с чем должен.
>>
>> С первым мы уже давно боремся с помощью -Wl,--as-needed, поэтому наличие
>> overlinked libraries, скорее всего, является следствием использования
>> -Wl,--no-as-needed.
>>
>> Cо вторым мы тоже давно боремся с помощью "%set_verify_elf_method strict".
>
> C недолинковкой вопрос несколько сложнее: verify-elf/ldd не ругается
> на непрямые транзитивные зависимости (по символам), если они разрешаются
> при загрузке. В этом вся соль. И в этом одна из претензий к тулчейну!
Спасибо, Алексай, вопрос исчерпан.
Кстати, вот пример "неявного no-as-needed", и до сих пор неизвестно,
лечится ли такое вообще.
Простой пример, z.c:
#include <stdio.h>
void main() {
printf("Hello\n");
}
> gcc z.c
> ldd a.out
libc.so.6 => /lib64/libc.so.6 (0x00002ad282672000)
/lib64/ld-linux-x86-64.so.2 (0x00002ad282454000)
> rm -f a.out
> mpicc z.c
> ldd a.out
libmpi.so.0 => /usr/lib/openmpi/lib/libmpi.so.0 (0x00002b4ad0dc4000)
libopen-rte.so.0 => /usr/lib/openmpi/lib/libopen-rte.so.0
(0x00002b4ad1077000)
libopen-pal.so.0 => /usr/lib/openmpi/lib/libopen-pal.so.0
(0x00002b4ad12c6000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b4ad1542000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00002b4ad1746000)
libutil.so.1 => /lib64/libutil.so.1 (0x00002b4ad195e000)
libm.so.6 => /lib64/libm.so.6 (0x00002b4ad1b62000)
libc.so.6 => /lib64/libc.so.6 (0x00002b4ad1de4000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b4ad2138000)
/lib64/ld-linux-x86-64.so.2 (0x00002b4ad0ba6000)
--
REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ
Подробная информация о списке рассылки Devel