O cenário de desenvolvimento para macOS com Apple Silicon pode estar prestes a receber uma adição significativa: o suporte nativo para os processadores M1, M2 e M3 no GNU Compiler Collection (GCC). Tradicionalmente, a Apple tem focado seus esforços e ferramentas de desenvolvimento na toolchain LLVM/Clang, amplamente utilizada no Xcode. No entanto, recentes desenvolvimentos na comunidade GCC, impulsionados pelo trabalho do desenvolvedor Iain Sandoe e com a colaboração de engenheiros da Arm e da própria equipe de código aberto da Apple, indicam que o GCC poderá em breve oferecer uma alternativa robusta e otimizada para compilar software rodando nos mais recentes Macs.
A evidência mais concreta desse avanço é a recente postagem na lista de discussão de patches do GCC, apresentando uma nova revisão da implementação inicial do suporte aos “Cores Apple” para GCC no ambiente AArch64 Darwin (a base do macOS). Este patch introduz novos targets de compilador especificamente para os processadores apple-m1, apple-m2 e apple-m3, além do SoC A12 (via apple-a12). Essa inclusão é um passo crucial para permitir que o GCC compreenda e utilize de forma eficiente as microarquiteturas proprietárias da Apple.
De acordo com a mensagem do patch enviada por Iain Sandoe, o desenvolvimento levou tempo devido à espera por feedback e outras prioridades de trabalho. O patch também aborda questões de conformidade com os requisitos de arquitetura ARM, esclarecendo que certas funcionalidades, embora não expostas no espaço do usuário, são suportadas em código privilegiado.
Um ponto interessante destacado no patch é a incorporação de informações sobre os IDs dos chips e as variantes LITTLE.big dos processadores Apple. Esses dados foram obtidos a partir de fontes internas do XNU (o kernel do macOS) e do próprio LLVM, sugerindo uma colaboração entre as comunidades de desenvolvimento para garantir a precisão do suporte no GCC.
A recepção inicial dos patches parece positiva, com indicações de que a versão mais recente está “boa” do lado da Arm, o que pode abrir caminho para que outros desenvolvedores forneçam suas aprovações. A expectativa é que esse suporte para os Cores Apple possa ser integrado ao tronco do GCC a tempo do lançamento da versão estável 15.1, previsto para as próximas semanas. Caso contrário, é provável que seja incluído na próxima grande versão, o GCC 16.
A eventual chegada do suporte otimizado para Apple Silicon no GCC representa uma vitória para a comunidade de código aberto e oferece aos desenvolvedores uma maior flexibilidade na escolha de suas ferramentas de compilação no macOS. Ter o GCC como uma alternativa ao LLVM pode impulsionar a inovação e a otimização de software para a crescente base de usuários de Macs com processadores Apple.