Выход LDD, показывающий общий объектный файл, функция которого не вызывается

StackOverflow https://stackoverflow.com/questions/2651220

  •  27-09-2019
  •  | 
  •  

Вопрос

Я управлял командой LDD на исполняемом файле, созданном открытым MPI. Он показывает ссылку на Libpthread.so, используя переменную ld_preload, я создал мою собственную реализацию pthread_create, но из его вывода, похоже, что реализация MPI не вызывает pthread_create, как я ожидал. Почему LDD показывает Pthread, так что файл на выходе, если оно не используется? Открыть MPI не использует отдельный поток MPI для каждого узла для реализации функциональности?

Это было полезно?

Решение

Если двоичный файл не связан с --as-needed Затем он приобретет ссылку на каждую библиотеку, приведенную в командной строке ссылки, независимо от того, на самом деле необходима ли она. Проходят -Wl,--as-needed в GCC для того, чтобы пройти опцию для LD.

Другие советы

MPI использует процессы, а не темы. Так что нет, Open MPI не будет использовать отдельный поток MPI на узел.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top