如何在glibc中增加函数接口?

3110阅读 0评论2015-07-30 shangbaogen
分类:LINUX

由于客户要求增加一个函数接口能动态的改变堆栈缓存的最大值大小
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!
上一篇:网络数据包收发流程(二):不配置NAPI的情况
下一篇:kernel 3.10内核源码分析--缺页异常(page fault)处理流程