Ferramentas de Desenvolvimento
GNU make 4.3
GNU make 4.3 inclui muitas correções de bugs, novos recursos e melhorias de desempenho.
Incompatibilidade com versões anteriores
Os patches de compatibilidade para a versão 3.8 foram removidos nesta versão, fazendo com que o Fedora seja igual a outras distros.
Mantenedores de pacotes que dependem de recursos de makefile específicos para versões mais antigas do GNU make (incluindo patches de compatibilidade para 3.8 que estamos descartando) podem usar FTBFS e precisar ajustar seus Makefiles. Os pacotes que foram compilados antes desta atualização não serão afetados. |
Incompatibilidade específica com versões anteriores:
* AVISO: Incompatibilidade com versões anteriores! Sinais numéricos (#) aparecendo dentro de uma referência de macro ou invocação de função não introduz mais comentários e não deve ser escapado com barras invertidas: portanto, uma chamada como: foo := $(shell echo '#') é válida. Anteriormente, o sinal numérico precisava ser escapado, por exemplo: foo := $(shell echo '\#') Agora, este último será resolvido como "\#". Se você quiser escrever makefiles portáteis para ambas as versões, atribua o sinal numérico a uma variável: H:= \# foo := $(shell echo '$H') Foi alegado que isso foi corrigido no 3.81, mas não foi, por algum motivo. Para detectar esta alteração, procure por 'nocomment' na variável .FEATURES . * AVISO: Incompatibilidade com versões anteriores! Anexar anteriormente usando '+=' a uma variável vazia resultaria em um valor começando com um espaço. Agora o espaço inicial só é adicionado se a variável já contém algum valor. Da mesma forma, anexar uma string vazia não adiciona um espaço à direita.
Novos recursos
-
Alvos explícitos agrupados As regras padrão sempre tiveram a capacidade de gerar múltiplos alvos com uma única invocação da receita. Agora é possível declarar que uma regra explícita gera múltiplos alvos com uma única invocação. Para usar isso, substitua o token
:
por&:
na regra. Para detectar este recurso, procure porgrouped-target
na variável especial .FEATURES. -
Variável .EXTRA_PREREQS As palavras nesta variável são consideradas pré-requisitos dos alvos, mas não são adicionadas a nenhum dos valores da variável automática ao expandir a receita. Esta variável pode ser global (aplica-se a todos os destinos) ou uma variável específica do destino. Para detectar este recurso, procure por
extra-prereqs
na variável especial.FEATURES
. -
Makefiles agora podem especificar a opção
-j
em sua variável MAKEFLAGS e isso fará com que o make habilite esse modo de paralelismo. -
GNU make agora usará
posix_spawn()
em sistemas onde estiver disponível. Se você preferir usar fork/exec mesmo em sistemas onde posix_spawn() está presente, você pode usar a opção--disable-posix-spawn
para configurar. -
As mensagens de erro impressas ao invocar comandos inexistentes foram limpas e tornadas consistentes.
-
Uma nova opção
--no-silent
foi adicionada, que cancela o efeito do sinalizador-s/--silent/--quiet
. -
Uma nova opção
-E
foi adicionada como um alias curto para--eval
. -
Interoperabilidade com bibliotecas de tempo de execução GNU libc e musl C mais recentes.
Consulte o link: anúncio de lançamento upstream para obter informações mais detalhadas sobre este lançamento.
Bugs corrigidos
Uma lista completa de bugs corrigidos nesta versão está disponível aqui make - Bugs
Want to help? Learn how to contribute to Fedora Docs ›