Essa informação está desatualizada e a pilha normalmente não é mais executável:
00007ffd884fa000 356K rw--- [ stack ]
O GCC precisa de uma pilha executável se gerar blocos de trampolins para chamadas de função aninhadas . Esses trampolins são pequenos pedaços de código gerados em tempo de execução e armazenados na pilha - portanto, se forem usados, a pilha precisa ser executável. O compilador controla esse requisito e gera um sinalizador em binários (bibliotecas e executáveis) para indicar se precisam de uma pilha executável. Você pode ver e manipular o valor desse sinalizador usando execstack(8)
.