[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