OpenSSL中的翻译单位是什么?

时间:2018-10-28 10:55:04

标签: makefile openssl

我试图了解OpenSSL(1.1.1)的构建过程。看来./Configure会生成一个名为configdata.pm的文件,其中包含编译器标志,依此类推。还有一个Makefile可能包含一些有用的信息。为简单起见,我启用了NO_ASM

但是,我如何知道哪些翻译单元进入了libcryptolibssl的构建?似乎抓住.ccrypto目录中的每个ssl文件都将导致生成错误。

如何从构建过程中提取此信息?

1 个答案:

答案 0 :(得分:0)

要了解构建libcryptolibssl所依赖的依赖项,生成的Makefile包含您需要的所有信息。

有一个名为libcrypto$(SHLIB_EXT_SIMPLE)的目标规则,该规则阐明了其依赖性,并具有将所有目标文件链接到crypto库的方法。在我当前的版本中,该配方包含一行大约14,000个字符的行。在Makefile中找到它的最简单方法是搜索表达式-o libcrypto

类似地,对于ssl库,目标称为libssl$(SHLIB_EXT_SIMPLE),您可以通过搜索-o libssl来找到配方

现在弄清楚Makefile本身是如何生成的是另一回事……据我所知,其信息分散在不同子目录中的许多build.info文件中,例如crypto目录下的模板,以及Configuration目录下的一些模板。信息通过几个perl脚本捆绑在一起。