Каковы единицы перевода в OpenSSL? - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь понять процесс сборки OpenSSL (1.1.1).Кажется, что ./Configure сгенерирует файл с именем configdata.pm, который содержит флаги компилятора и так далее.Существует также Makefile, который, вероятно, содержит некоторую полезную информацию.Для простоты я включил NO_ASM.

Однако откуда мне знать, какие единицы перевода входят в здание libcrypto и libssl?Кажется, что захват каждого файла .c в каталогах crypto и ssl приведет к ошибкам сборки.

Как извлечь эту информацию из процесса сборки?

1 Ответ

0 голосов
/ 29 октября 2018

Чтобы узнать, какие зависимости входят в построение libcrypto и libssl, сгенерированный Makefile содержит всю необходимую вам информацию.

Для цели есть правило, называемое libcrypto$(SHLIB_EXT_SIMPLE), в котором прописаноего зависимости и рецепт для связывания всех объектных файлов в библиотеку crypto.В моем текущем билде этот рецепт содержит строку длиной около 14 000 символов.Самый простой способ найти его в вашем Makefile - это найти выражение -o libcrypto.

Аналогично, для библиотеки ssl цель называется libssl$(SHLIB_EXT_SIMPLE), и вы можете найти рецепт попоиск -o libssl

Теперь выяснить, как генерируется сам Makefile, - это отдельная история ... Насколько я могу судить, информация об этом разбросана по многим файлам build.info вразличные подкаталоги, например, в каталоге crypto, а также некоторые шаблоны, найденные в каталоге Configuration.Информация связывается между собой несколькими сценариями Perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...