No meu caso, o erro EPERM foi causado pelo suporte de Arquivos Grandes ativado na configuração de compilação. Isso fez com que _FILE_OFFSET_BITS fosse definido como 64
e, portanto, a chamada getrlimit()
se tornou realmente uma chamada getrlimit64()
, que falhou. Desativar o suporte a arquivos grandes corrigiu o problema. Eu estou trabalhando em um aplicativo ARM embutido, então, esperançosamente, desabilitar o suporte ao Large File não me prejudicará muito.