Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1595523
  • 博文数量: 204
  • 博客积分: 2215
  • 博客等级: 大尉
  • 技术积分: 4427
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-06 08:03
个人简介

气质,源于心灵的自信!

文章存档

2018年(1)

2017年(1)

2016年(1)

2015年(18)

2014年(20)

2013年(30)

2012年(119)

2011年(14)

分类: LINUX

2015-07-30 16:21:19

由于客户要求增加一个函数接口能动态的改变堆栈缓存的最大值大小
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) |
给主人留下些什么吧!~~