包装的malloc,但只对某些输入文件(对象和lib)的 [英] Wrap malloc but only for some of input files (object and lib)

查看:101
本文介绍了包装的malloc,但只对某些输入文件(对象和lib)的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要包装调用MALLOC,从我自己的发球池内存。
但是,只有我自己的目标文件,以及一些外部库。
其他图书馆应该有机会获得真正的malloc。
我使用静态链接,只有静态链接库(.a归档中)。

I need to wrap call to malloc, to serve memory from my own pool. But only for my own object files, and some of external libraries. Other libraries should have access to real malloc. I use static linking and only link to static libraries (.a archives).

我用--wrap = malloc的选项为拦截调用malloc的,但它使所有code从所有输入文件中使用此的malloc(__wrap_malloc)。

I use --wrap=malloc option to "intercept" call to malloc, but it makes all code from all input files use this malloc (__wrap_malloc).

理想的解决办法,如果我可以用--wrap链接器选项,但只有将其应用于部分输入文件。但是其他的解决方案,也欢迎。

Ideal solution would be if I could use --wrap linker option but only apply it to some of input files. But other solutions are welcome too.

如果需要的话来说明这个问题,我可以提供虚拟例如code(这是不小)。

I can provide dummy example code (which is not that small) if needed to illustrate the problem.

任何想法?

感谢

推荐答案

尝试分两步进行链接。

第一阶段: LD -r -o libwrapped.a --wrap = malloc的myobj1.o myobj2.o -lsomelib

第二阶段: LD -o最终-lwrapped -lsomeotherlib

-r 选项使第一个文件(包裹)重新定位,通常被称为部分链接。基本上,你让所有你想要的包裹对象库,然后链接与那些你不想裹成的最终目标。

The -r option makes the first file (wrapped) relocatable, often called partial linking. Basically you make a library of all the objects you want wrapped, then link that with the ones you don't want wrapped into the final object.

这篇关于包装的malloc,但只对某些输入文件(对象和lib)的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆