Documentation for a newer release is available. View Latest

Herramientas de desarrollo

GNU hecho 4.3

GNU hecho 4.3 incluye muchas correcciones de errores, nuevas características y mejoras de rendimiento.

Incompatibilidad hacia atrás

Los parches de compatibilidad para hacer la versión 3.8 se quitan en esta revisión, lo que hace que Fedora sea igual que otras distribuciones.

Los propietarios de versiones que confían en características de archivos MAKE específicas de antiguas versiones de GNU make (incluyendo los parches de compatibilidad 3.8 que hemos quitado) pueden FTBFS y necesitan modificar sus Makefiles. Los paquetes fueron construidos antes de esta actualización no se verán afectados.

Incompatibilidad hacia atrás específica:

* WARNING: Backward-incompatibility!
  Number signs (#) appearing inside a macro reference or function invocation
  no longer introduce comments and should not be escaped with backslashes:
  thus a call such as:
    foo := $(shell echo '#')
  is legal.  Previously the number sign needed to be escaped, for example:
    foo := $(shell echo '\#')
  Now this latter will resolve to "\#".  If you want to write makefiles
  portable to both versions, assign the number sign to a variable:
    H := \#
    foo := $(shell echo '$H')
  This was claimed to be fixed in 3.81, but wasn't, for some reason.
  To detect this change search for 'nocomment' in the .FEATURES variable.

* WARNING: Backward-incompatibility!
  Previously appending using '+=' to an empty variable would result in a value
  starting with a space.  Now the initial space is only added if the variable
  already contains some value.  Similarly, appending an empty string does not
  add a trailing space.

New features

  • Grouped explicit targets Pattern rules have always had the ability to generate multiple targets with a single invocation of the recipe. It’s now possible to declare that an explicit rule generates multiple targets with a single invocation. To use this, replace the : token with &: in the rule. To detect this feature search for grouped-target in the .FEATURES special variable.

  • .EXTRA_PREREQS variable Words in this variable are considered prerequisites of targets but they are not added to any of the automatic variable values when expanding the recipe. This variable can either be global (applies to all targets) or a target-specific variable. To detect this feature search for extra-prereqs in the .FEATURES special variable.

  • Makefiles can now specify the -j option in their MAKEFLAGS variable and this will cause make to enable that parallelism mode.

  • GNU make will now use posix_spawn() on systems where it is available. If you prefer to use fork/exec even on systems where posix_spawn() is present, you can use the --disable-posix-spawn option to configure.

  • Error messages printed when invoking non-existent commands have been cleaned up and made consistent.

  • A new option --no-silent has been added, that cancels the effect of the -s/--silent/--quiet flag.

  • A new option -E has been added as a short alias for --eval.

  • Interoperate with newer GNU libc and musl C runtime libraries.

See the upstream release announcement for more detailed information about this release.

Bugs fixed

A complete list of bugs fixed in this version is available here make - Bugs