c-设置共享库的堆栈大小



有没有办法(使用gcc(设置共享库的堆栈大小
我构建了一个.so,其中包含一个使用大缓冲区作为局部变量的函数
类似的东西:

void foo ( void )
{
int table [1000000] ; // 4 millions bytes table !
...
}

我添加了选项-Wl,-z,stack-size=4100000,但它没有效果(甚至没有错误消息(
顺便说一下,这个lib是从java代码中调用的(使用JNA(
由于我没有找到任何关于这个特殊问题的帖子,恐怕这是不可能的。。。

不,这是不可能的-共享库中的函数在调用它们的线程的上下文中工作,该线程将是主应用程序线程(在main中启动(或使用Pthreads创建的线程(在线程创建时在pthread_create中分配堆栈(。

-Wl,-z,stack-size标志只适用于应用程序,不适用于库,并设置主线程堆栈的大小。

最新更新