由于客户要求增加一个函数接口能动态的改变堆栈缓存的最大值大小
1.在相应的文件中(glibc-2.18-4.8/nptl/allocatestack.c),添加要增添的函数.
size_t pthread_set_stack_cache_maxsize (size_t size)
{
stack_cache_maxsize = size;
return stack_cache_maxsize;
}
2.把该函数的原型添加到对应的头文件中(
glibc-2.18-4.8/nptl/sysdeps/pthread/pthread.h).
extern size_t pthread_set_stack_cache_maxsize (size_t size) __THROW;
3.修改当前目录下的glibc-2.18-4.8/nptl/Versions文件.
GLIBC_2.1 {
...........
__libc_allocate_rtsig; pthread_set_stack_cache_maxsize;
}
4.完成以上步骤后,重新编译就可以使用.
使用示例如下:
#include <stdio.h>
#include <pthread.h>
int main(int argc, char* argv[])
{
int i;
i = pthread_set_stack_cache_maxsize(10*1024*1024);
if(10*1024*1024 == i)
{
printf("set sucessfully!\n");
}else
{
printf("set failed!\n");
}
}
5,交叉编译命令:
.../powerpc-wrs-linux-gnu-gcc --sysroot=.../bitbake_build/tmp/sysroots/fsl-b4860 -pthread -o set-test set-test.c
6.测试结果
root@localhost:~# ./set-test
set sucessfully!
阅读(3204) | 评论(0) | 转发(0) |