[devel] I: rpm 4.0.4-alt98.49, latter rain

Led ledest на gmail.com
Вт Окт 5 12:15:37 UTC 2010


On Tuesday 05 October 2010 12:30:18 REAL wrote:
> 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)

$ mpicc z.c
$ ./a.out
Hello
$ ldd -r a.out
        linux-vdso.so.1 =>  (0x00007fff73939000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f1ba795e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1ba7ceb000)

Вроде всё нормально. Может просто кто-то "не умеет готовить" openmpi?

-- 
Led


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