设置共享库的堆栈大小

Set the stack size of a shared library

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

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

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

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

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