【发布时间】:2015-11-29 02:57:35
【问题描述】:
是否可以(在 Linux / OSX 中)控制加载后共享库在内存中的映射方式?
是否可以分配一个连续的内存区域,并将其传递给诸如“dlopen”之类的例程?
我不坚持将各个段(.text、.bss 等)精确放置在 malloc 区域内,而只是将所有段都放在 malloc 区域内。
【问题讨论】:
标签: dll linker shared-libraries
是否可以(在 Linux / OSX 中)控制加载后共享库在内存中的映射方式?
是否可以分配一个连续的内存区域,并将其传递给诸如“dlopen”之类的例程?
我不坚持将各个段(.text、.bss 等)精确放置在 malloc 区域内,而只是将所有段都放在 malloc 区域内。
【问题讨论】:
标签: dll linker shared-libraries
是否可以(在 Linux / OSX 中)控制加载后共享库在内存中的映射方式?
我对OSX了解不多,所以只回答Linux部分。
不修改动态加载器不行。
是否可以分配一个连续的内存区域,并将其传递给诸如“dlopen”之类的例程?
malloc 不会为您提供所需的页面对齐。 posix_memalign 会,但你最好直接做 mmap(..., MAP_FIXED, ...)。你要求实现这个feature request(还没有人做过)。
【讨论】: