Linux x86_64 で共有ライブラリをロードすると、
dlopen error: "FILENAME" failed to map segment from shared object: Resource temporarily unavailable
マシンには 48 GiB のホスト メモリがインストールされており、他のユーザーがログインしていません。したがって、メモリ不足が原因ではない可能性があります。
私は何十もの共有ライブラリをロードします。
コードは次のようになります (セットアップが大幅に削減されます)。そして、はいmlockall、意図的です:
#if _POSIX_MEMLOCK > 0
#warning "POSIX_MEMLOCK available" 
#else
#error "POSIX_MEMLOCK needed. Aborting"
#endif
int main()
{
  if (mlockall(MCL_FUTURE)) {
    printf("error page-locking\n");
    exit(1);
  }
  void *handle;
  handle = dlopen( "filename.so" ,  RTLD_LAZY);
}
ページロックに関するその他の制限はありますか?