O fato de que, com o nível de otimização de -O1
ou menor, o Ubuntu de 64 bits consegue compilar
o projeto significa que o problema está na fase de otimização do gcc.
Eu diria que algum arquivo de origem em seu projeto acontece com um erro ou ineficiência no otimizador gcc introduzido na versão 4.7.2. que causa o uso de uma quantidade excessiva de memória.
Então, o que eu sugiro é:
- Uma versão de 32 bits do gcc pode acessar apenas 2-3 GB de memória (qualquer tamanho que seja a troca).
- Aumente o espaço de troca, mas continue lendo se isso não ajudar. Em qualquer caso, para um gcc de 32 bits, haverá um limite para a quantidade de memória que ele pode usar.
- Ao compilar os arquivos de origem um por um, localize aquele que é responsável pelo problema. Se isso é tudo, então o problema é com alguns arquivos de inclusão.
- Se o problema não for com um arquivo de inclusão, divida ainda mais a problemática arquivo fonte em várias partes, até que você pare de receber o erro ou localize a função que o causa.
- Como solução temporária, modifique o arquivo de criação para compilar essa função com
-O1
. O problema é, neste caso, com o próprio gcc, e você pode enviar essa função em um relatório de erros (junto com todos seus arquivos de inclusão). - Você pode também optar por compilar o projeto inteiro com
-O1
que deve ser suficiente para uma extensão PHP, ou ficar com o gcc 4.6.3 no momento. - Continue experimentando novas atualizações no gcc, já que o bug pode ter sido corrigido (ou a ineficiência removida) sem relação com o relatório de erros.