GNU Make é um utilitário que controla a geração de executáveis e outros
arquivos-alvo de um programa a partir de arquivos de código-fonte, confira as melhorias e novidades da nova versão 4.4.
Lançado o GNU Make 4.4
GNU Make é um utilitário que controla a geração de executáveis e outros arquivos-alvo de um programa a partir de arquivos de código-fonte. Ele determina automaticamente quais partes de um grande programa precisam ser (re)criadas, e envia os comandos para (re)criá-las. O Make pode ser usado para organizar qualquer tarefa na qual alvos (arquivos) devem ser automaticamente atualizados baseado em arquivos de entrada sempre que a entrada correspondente for mais nova --- isto não é limitado à construção de programas de computador. Na verdade, o Make é um resolvedor de dependências de propósito geral.
FonteDestaques:
- GNU Make 4.4 descontinua OS/2 (EMX), AmigaOS, Xenix e Cray com planos de remover esses alvos na próxima versão.
- O GNU Make agora usará arquivos temporários em mais situações.
- O novo alvo especial .WAIT para entre dois pré-requisitos de um alvo. O GNU Make esperará que todos os alvos à esquerda de .WAIT na lista sejam concluídos antes de iniciar qualquer um dos alvos à direita de .WAIT. Algumas versões alternativas de make já suportam .WAIT e serão necessárias em um próximo padrão POSIX para make.
- Suporte aprimorado para -l / --load-average em sistemas Linux ou outros expondo /proc/loadavg. O GNU Make usará a média de carga exposta para determinar o número de tarefas executáveis e evitar a necessidade de heurísticas.
- GNU Make 4.4 adiciona uma opção "--shuffle". A opção de linha de comando shuffle reordena metas e pré-requisitos para simular o não determinismo que pode ser visto durante compilações paralelas. O modo shuffle pode ser usado como uma forma de teste fuzz para compilações paralelas do GNU Make.
- Outra novidade é a opção de linha de comando --jobserver-style e pipes nomeados em sistemas onde o mkfifo está disponível.
- A exportação e desexportação de variáveis específicas de destino agora são tratadas corretamente.
- Um problema de longa data com o cache do diretório foi corrigido.
- Suporte para construir GNU Make no Microsoft Windows com o Tiny C Compiler (TCC).
Log completo das correções e melhorias.
* WARNING: Deprecation!
The following systems are deprecated in this release:
- OS/2 (EMX)
- AmigaOS
- Xenix
- Cray
In the NEXT release of GNU Make, support for these systems will be removed.
If you want to see them continue to be supported, contact .
* WARNING: Future backward-incompatibility!
In the NEXT release of GNU Make, pattern rules will implement the same
behavior change for multiple targets as explicit grouped targets, below: if
any target of the rule is needed by the build, the recipe will be invoked if
any target of the rule is missing or out of date. During testing some
makefiles were found to contain pattern rules that do not build all targets;
this can cause issues so we are delaying this change for one release cycle
to allow these makefiles to be updated. GNU Make shows a warning if it
detects this situation: "pattern recipe did not update peer target".
* WARNING: Backward-incompatibility!
GNU Make now uses temporary files in more situations than previous releases.
If your build system sets TMPDIR (or TMP or TEMP on Windows) and deletes the
contents during the build, or uses restrictive permissions, this may cause
problems. You can choose an alternative temporary directory only for use by
GNU Make by setting the new MAKE_TMPDIR environment variable before invoking
make. Note that this value CANNOT be set inside the makefile, since make
needs to find its temporary directory before the makefiles are parsed.
* WARNING: Backward-incompatibility!
Previously each target in a explicit grouped target rule was considered
individually: if the targets needed by the build were not out of date the
recipe was not run even if other targets in the group were out of date. Now
if any of the grouped targets are needed by the build, then if any of the
grouped targets are out of date the recipe is run and all targets in the
group are considered updated.
* WARNING: Backward-incompatibility!
Previously if --no-print-directory was seen anywhere in the environment or
command line it would take precedence over any --print-directory. Now, the
last setting of directory printing options seen will be used, so a command
line such as "--no-print-directory -w" _will_ show directory entry/exits.
* WARNING: Backward-incompatibility!
Previously the order in which makefiles were remade was not explicitly
stated, but it was (roughly) the inverse of the order in which they were
processed by make. In this release, the order in which makefiles are
rebuilt is the same order in which make processed them, and this is defined
to be true in the GNU Make manual.
* WARNING: Backward-incompatibility!
Previously only simple (one-letter) options were added to the MAKEFLAGS
variable that was visible while parsing makefiles. Now, all options are
available in MAKEFLAGS. If you want to check MAKEFLAGS for a one-letter
option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return
the set of one-letter options which can be examined via findstring, etc.
* WARNING: Backward-incompatibility!
Previously makefile variables marked as export were not exported to commands
started by the $(shell ...) function. Now, all exported variables are
exported to $(shell ...). If this leads to recursion during expansion, then
for backward-compatibility the value from the original environment is used.
To detect this change search for 'shell-export' in the .FEATURES variable.
* WARNING: New build requirement
GNU Make utilizes facilities from GNU Gnulib: Gnulib requires certain C99
features in the C compiler and so these features are required by GNU Make:
https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html
The configure script should verify the compiler has these features.
* New feature: The .WAIT special target
If the .WAIT target appears between two prerequisites of a target, then
GNU Make will wait for all of the targets to the left of .WAIT in the list
to complete before starting any of the targets to the right of .WAIT.
This feature is available in some other versions of make, and it will be
required by an upcoming version of the POSIX standard for make.
Different patches were made by Alexey Neyman (2005)
and Steffen Nurpmeso (2020) that were useful but the
result is a different implementation (closer to Alexey's idea).
* New feature: .NOTPARALLEL accepts prerequisites
If the .NOTPARALLEL special target has prerequisites then all prerequisites
of those targets will be run serially (as if .WAIT was specified between
each prerequisite).
* New feature: The .NOTINTERMEDIATE special target
.NOTINTERMEDIATE disables intermediate behavior for specific files, for all
files built using a pattern, or for the entire makefile.
Implementation provided by Dmitry Goncharov
* New feature: The $(let ...) function
This function allows user-defined functions to define a set of local
variables: values can be assigned to these variables from within the
user-defined function and they will not impact global variable assignments.
Implementation provided by Jouke Witteveen
* New feature: The $(intcmp ...) function
This function allows conditional evaluation controlled by a numerical
comparison.
Implementation provided by Jouke Witteveen
* New feature: Improved support for -l / --load-average
On systems that provide /proc/loadavg (Linux), GNU Make will use it to
determine the number of runnable jobs and use this as the current load,
avoiding the need for heuristics.
Implementation provided by Sven C. Dack
* New feature: The --shuffle command line option
This option reorders goals and prerequisites to simulate non-determinism
that may be seen using parallel build. Shuffle mode allows a form of "fuzz
testing" of parallel builds to verify that all prerequisites are correctly
described in the makefile.
Implementation provided by Sergei Trofimovich
* New feature: The --jobserver-style command line option and named pipes
A new jobserver method is used on systems where mkfifo(3) is supported.
This solves a number of obscure issues related to using the jobserver
and recursive invocations of GNU Make. This change means that sub-makes
will connect to the jobserver even if they are not marked as recursive.
It also means that other tools that want to participate in the jobserver
will need to be enhanced as described in the GNU Make manual.
You can force GNU Make to use the simple pipe-based jobserver (perhaps if
you are integrating with other tools or older versions of GNU Make) by
adding the '--jobserver-style=pipe' option to the command line of the
top-level invocation of GNU Make, or via MAKEFLAGS or GNUMAKEFLAGS.
To detect this change search for 'jobserver-fifo' in the .FEATURES variable.
* Some POSIX systems (*BSD) do not allow locks to be taken on pipes, which
caused the output sync feature to not work properly there. Also multiple
invocations of make redirecting to the same output file (e.g., /dev/null)
would cause hangs. Instead of locking stdout (which does have some useful
performance characteristics, but is not portable) create a temporary file
and lock that. Windows continues to use a mutex as before.
* GNU Make has sometimes chosen unexpected, and sub-optimal, chains of
implicit rules due to the definition of "ought to exist" in the implicit
rule search algorithm, which considered any prerequisite mentioned in the
makefile as "ought to exist". This algorithm has been modified to prefer
prerequisites mentioned explicitly in the target being built and only if
that results in no matching rule, will GNU Make consider prerequisites
mentioned in other targets as "ought to exist".
Implementation provided by Dmitry Goncharov
* GNU Make was performing secondary expansion of all targets, even targets
which didn't need to be considered during the build. In this release
only targets which are considered will be secondarily expanded.
Implementation provided by Dmitry Goncharov
* If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed
immediately rather than after all makefiles have been read. Note that
although all options are parsed immediately, some special effects won't
appear until after all makefiles are read.
* The -I option accepts an argument "-" (e.g., "-I-") which means "reset the
list of search directories to empty". Among other things this can be used
to prevent GNU Make from searching in its default list of directories.
* New debug option "print" will show the recipe to be run, even when silent
mode is set, and new debug option "why" will show why a target is rebuilt
(which prerequisites caused the target to be considered out of date).
Implementation provided by David Boyce
* The existing --trace option is made equivalent to --debug=print,why
* Target-specific variables can now be marked "unexport".
* Exporting / unexporting target-specific variables is handled correctly, so
that the attribute of the most specific variable setting is used.
* Special targets like .POSIX are detected upon definition, ensuring that any
change in behavior takes effect immediately, before the next line is parsed.
* When the pipe-based jobserver is enabled and GNU Make decides it is invoking
a non-make sub-process and closes the jobserver pipes, it will now add a new
option to the MAKEFLAGS environment variable that disables the jobserver.
This prevents sub-processes that invoke make from accidentally using other
open file descriptors as jobserver pipes. For more information see
https://savannah.gnu.org/bugs/?57242 and https://savannah.gnu.org/bugs/?62397
* A long-standing issue with the directory cache has been resolved: changes
made as a side-effect of some other target's recipe are now noticed as
expected.
* GNU Make can now be built for MS-Windows using the Tiny C tcc compiler.
Port provided by Christian Jullien
- Log ---------------------------------------------------------------------
Andreas Schwab (1):
[SV 63111] Ensure output-sync is cleaned on re-exec and recursion
Cao jin (1):
* doc/make.texi (Call Function): Apply consistent formatting
Christian Jullien (1):
Add support for building with Tiny C for MS-Windows
Dmitry Goncharov (45):
[SV 59230] Preserve export settings for target-specific vars
[SV 60188] Explicit prereqs cannot be intermediate files
* tests/scripts/targets/INTERMEDIATE: [SV 60188] Add one more test
[SV 60378] Don't add duplicate default search directories
[SV 60659] Set $$ properly in second expansion
[SV 60297] Add .NOTINTERMEDIATE special target
[SV 60699] Avoid calling strlen() repeatedly in a loop
[SV 57778] Don't ignore included makefiles that can't be read
* src/main.c (decode_debug_flags): [SV 607777] Preserve -d options
[SV 60435] Ensure intermediate grouped files are removed
* doc/make.texi (Special Targets): [SV 61122] Add .SECONDARY example
[SV 61042] Enhance logging of implicit rule search
[SV 48643] Enhance "ought to exist" definition
[SV 48643] Preserve target-specific variables on intermediate files
* src/implicit.c (pattern_search): [SV 61864] Fix debug output.
[SV 48643] Make prereqs mentioned in unrelated rules explicit
[SV 48643] Add more tests of intermediates and unrelated targets
[SV 61805] Support quoted whitespace in .SHELLFLAGS with .ONESHELL
[SV 62088] Avoid re-exec due to stdin.
[SV 62145] Remove a stdin temp file on re-exec failure.
* src/read.c (check_specials): [SV 62171] Reset ARFLAGS under .POSIX
* tests/scripts/options/dash-l: [SV 62172] Skip if not available
[SV 62278] Only expand the first pattern during secondary expansion
[SV 62324] Simplify set_file_variables by passing in the stem
[SV 62356] If -R is set in the makefile, disable -r
[SV 62175] Rework secondary expansion tests
[SV 62206] Fix %-substitution in second expansion of pattern rules
* tests/scripts/features/archives: Fix typo
[SV 62514] Honor command line interface flags
[SV 62650] Show correct warning when combining targets
[SV 62706] Only second-expand targets that might be built
* doc/make.texi (Remaking Makefiles): [SV 61623] Add optimization
[SV 62908] Don't free fifo_name twice during error handling
[SV 63044] load: Update .LOADED if the setup function returns -1
[SV 63045] Reload each intact unloaded shared object
* tests/scripts/targets/WAIT: [SV 63071] Remove possible test races.
[SV 56301] Fail if an included makefile can't be built
* configure.ac: [SV 63070] Clean up the test program for posix_spawn.
[SV 63100] Set the floc of every created goal dep struct
* doc/make.texi (Loaded Object API): [SV 63126] Fix typos and examples
* tests/test_driver.pl (toplevel): [SV 63156] Keep temp env vars
[SV 63248] Ignore SIGPIPE
[SV 63236] Fix getloadavg related error message on AIX
[SV 63243] tests: Avoid SIGTERM racing with make error messages
* src/posixos.c (os_anontmp): If O_TMPFILE fails try dup() method.
Eli Zaretskii (4):
* NEWS: Mention the new tcc support.
[SV 58656] Fix mtime for large files on MS-Windows
Avoid compilation warnings
Fix compiler warnings in the MS-Windows build.
Jens Rehsack (3):
* src/dir.c (local_stat): [WINDOWS32] Fix buffer-overflow warning.
* src/w32/compat/dirent.c: [SV 57888] Use gnulib opendir on MinGW32
* src/output.h: [WINDOWS32] [SV 57888] Use gnulib fcntl if available
Jouke Witteveen (8):
Create $(let ...) providing lexically scoped variables
More correctly describe the scope of variables
* src/makeint.h: Removed unused atol declaration
Use strtol() instead of atoi()
Introduce $(intcmp ...) for numerical comparison
[SV 60798] Silence bogus GCC10 and GCC11 warnings
* src/read.c (find_percent_cached): [SV 60798] Silence GCC11 warnings
* src/function.c (parse_textint): Handle ints without 0 properly.
Juan M. Guerrero (1):
Support building with DJGPP 2.05
Kevin Buettner (1):
[SV 58232] Disable inheritance of jobserver FDs for recursive make
Mike Frysinger (1):
* doc/make.texi (Automatic Variables): Relocate the $? example
Noah Goldstein (2):
hash: Remove unnecessary isupper() check before tolower()
Replace strcmp() with memcmp() where possible
Paul Eggert (2):
Remove arbitrary limits on intcmp integers
Support systems with 32-bit long and 64-bit time_t
Paul Smith (238):
Update to GNU make 4.3.90
Apply spelling corrections from Fossies spellcheck
* NEWS: Update 4.3 with information on .SILENT / -s
Obey order of multiple print/no-print directory options
[SV 57967] Only set APPEND mode for regular files
[SV 57896] Change directories before checking jobserver auth
tests: Simplify customization of %ENV
[SV 57674] Use the system default PATH if $PATH is not set
* mainMakefile: Check that INSTALL exists in the dist file
* maintMakefile: Clean up output
Convert [ ... ] to test ... in scripting.
[SV 57930] Cast char to unsigned char to call ctype functions
* NEWS: Fix some tortured grammar.
* src/job.c (unblock_sigs): [!POSIX] [SV 58743] Fix syntax errors
* src/makeint.h: [ARM] [SV 58347] Don't assume ARM is not POSIX
[SV 58735] Define the order that makefiles are rebuilt.
* NEWS: [SV 58435] Document minimum C compiler version requirement
* doc/make.texi (Include): Update behavior for missing included files
[SV 59093] Rewrite filter/filter-out to avoid large stack usage
* .ccls: Disable clang compare against static string warning
[SV 35711] Check for special targets earlier
* src/default.c (default_variables) [AIX]: [SV 59096] Fix ARFLAGS
[SV 59230] Ensure environment variables are exportable
Support "unexport" in target-specific variables.
[SV 41273] Allow the directory cache to be invalidated
Avoid some valgrind warnings
Resolve unused-result warnings for alloca(0)
* tests/scripts/features/vpathgpath: Avoid duplicate function name.
* Makefile.am (HAVE_GUILE): Only use Guile options if HAVE_GUILE.
* maintMakefile: [SV 58794] Check for file existence in the release
* src/main.c (main): [SV 59601] Check for malformed env. variables
* src/makeint.h (free_alloca): Check for builtin alloca
[SV 57676] Support included files being built after failing
* configure.ac: [SV 58836] Copy build.sh to the build directory
[SV 59169] Add --debug=why and --debug=print options
* doc/make.texi (Synchronized Terminal Output): [SV 58960] Fix link
* doc/make.texi (Phony Targets): [SV 58961] Clarify pattern handling
* doc/make.texi (How Patterns Match): [SV 58639] Fix chaining info.
* file.c (remove_intermediates): Restart "rm ..." on error
* .dir-locals.el: Update for newer LSP config
* doc/make.text: Clarify that patsubst doesn't touch unmatched words
* maintMakefile: Don't make .check-git-HEAD .PHONY
[SV 59870] define/undefine prerequisites are not target-specific vars
[SV 59881] Handle vertical TAB consistently
Ensure variable_buffer is always set.
* tests/scripts/features/exec: Small cleanup
[SV 58497] Ensure $(file newline removal succeeds
Fix build and test issues on Windows
[SV 58341] Add non-trivial options to $(MAKEFLAGS)
* make.texi (Reading Makefiles): != creates recursive variables.
* NEWS: Add a few missing attributions
[SV 60412] Allow -I- to throw out the current directory path
[SV 60595] Restart whenever any makefile is rebuilt
* make-gdb.py: Add pretty-printers and clean up.
[SV 45211] Parse MAKEFLAGS immediately when it's reset
Clean up a few Windows build warnings (not all!)
* src/main.c (decode_switches): Fix memory leak.
* README.git: Add a section on ways to test.
* doc/make.1: Clean up man page text.
* doc/make.texi (Prerequisite Types): [SV 61069] Mention PHONY prereqs
Remove UBSAN issues discovered via fuzzing tests.
* doc/make.texi (Chained Rules): [SV 60904] Clarify intermediate files.
* doc/make.texi (Environment): [SV 60841] Clarify variable exporting.
[SV 60795] Don't remake phony included makefiles and show errors
* src/default.c (default_variables): Use CPP in PREPROCESS.S.
Clean up more Windows warnings.
Add support for the POSIX :::= assignment operator.
* README.git: Update C version prerequisite
tests: Enhance output to contain filename/line number info
[SV 48643] Update the implicit rule search docs
* src/implicit.c (pattern_search): Fix text for easier translation.
Convert word, wordlist, and intcmp functions to use long long
Special-case Windows error results
* NEWS: Update with author details
* .gitignore: Ignore patch files.
[SV 61621] Don't use POSIX_SPAWN_RESETIDS with posix_spawn()
* doc/make.text (Wildcards): Document that glob results are sorted.
Use a well-known error string for out-of-bound function arguments
* src/makeint.h: Compute INTSTR_LENGTH based on size of intmax_t
Change HTTP URLs to use HTTPS instead
Update documentation with instructions for patch submission
* README.template: Clean up patch submission information
Do not force targets to be SECONDARY
* tests/scripts/targets/INTERMEDIATE: Rewrite for new test method
* src/read.c (tilde_expand): Put back '/' before returning.
Ensure that loaded functions increment the command count
[SV 61226] Revert changes to detect missing included files
* doc/make.texi (Using One Shell): Correct example to use $
* src/job.c (load_too_high): Re-enable Linux /proc/loadavg checks.
* src/implicit.c (pattern_search): Use const ptrs when possible.
* tests/scripts/features/implicit_search: [SV 48643] Cleanups.
Avoid interleaved $(info ) output
* tests/scripts/features/implicit_search: Add -r for safety.
* tests/scripts/features/double_colon: Update for modern tests.
* Basic.mk.template: Allow arguments to the check target.
Don't write $(shell ...) stdout to stderr on failure
* doc/make.1: Use "target" from the SYNOPSIS.
* : Update copyright notices.
Ensure buffers are large enough for integer values
* tests/test_driver.pl: Support STDIN redirection.
tests: Preserve Windows temp environment variables
tests: Allow run_make_test() to avoid passing -f
* src/main.c: Ensure the stdin temp file is deleted when dying.
Remove extraneous characters from fatal() calls
* README.git: Fix compiler options for ASAN
* tests/scripts/variables/MAKE_RESTARTS: Remove TAB chars
[SV 62118] Correctly handle -f- options on re-exec
* tests/scripts/features/errors: Fix Perl warnings
[SV 62173] Fix archive tests for non-GNU systems
* tests/test_driver.pl (toplevel): [SV 62174] Enforce the C locale
* src/commands.h: [SV 62213] Forward-declare struct file / child
* Makefile.am: Add INSTALL to the EXTRA_DIST files
* tests/test_driver.pl (run_all_tests): Keep one copy of STDIN
* tests/scripts/features/reinvoke: [SV 62088] Close STDIN
* tests/scripts/options/dash-f: [SV 62118] Close STDIN
* Makefile.am (check-regression): Rename jhelp to thelp
* po/LINGUAS: Add a translation for Romanian
* src/misc.c (make_pid): A function to return the PID
* src/misc.c (make_toui): Parse a string into an unsigned int
* tests/scripts/features/temp_stdin: Remove nested "my"
Avoid overwriting buffers with long pathnames
* build_w32.bat [WIN]: Use call for all invocations
* tests/test_driver.pl: Don't freak if diff can't be found
Don't add GNUMAKEFLAGS to the environment
Initial gnulib-port branch commit
Add gnulib getloadavg
Add gnulib concat-filename
Add gnulib findprog-in
[SV 10593] Export variables to $(shell ...) commands
Run autoupdate and clean up autoconf usage
bootstrap: Remove gnulib version of mempcpy()
bootstrap: Remove strtoll()
bootstrap: Remove strerror()
* build.sh: Manage libgnu_a-prefixed source files
* maintMakefile: Allow checkcfg rules to succeed.
getloadavg: Remove support for privileged invocation
* configure.ac: Check for stpcpy() support.
* configure.ac: Remove AC_FUNC_SETVBUF_REVERSED.
* tests/run_make_tests.pl: Exit 1 if we detect an error.
Move our fnmatch/glob implementation into gl/lib
Move our local m4 macros to gl/m4
Initial merge of the gnulib-port branch
Merge in the latest gnulib getloadavg module
Merge in the latest gnulib concat-filename module
Merge in the latest gnulib findprog-in module
Convert HAVE_GETLOADAVG to HAVE_DECL_GETLOADAVG
Take advantage of mempcpy() and stpcpy()
Ensure that MAKEFLAGS is set when invoking $(shell ...)
Disable the jobserver in non-recursive children
Enhance get_tmpfile() and add get_tmppath()
Support implementing the jobserver using named pipes
[SV 62496] Fix example of testing MAKEFLAGS
* doc/make.texi (Chained Rules): [SV 61957] Clarify NOTINTERMEDIATE
* doc/make.texi (Goals): [SV 51306] Improve MAKECMDGOALS example
* doc/make.texi (Variables/Recursion): [SV 56446] Clarify export docs
Fix bootstrap.bat for bootstrapping on Windows
test_driver: check for leftover temp files after each test
Add get_tmpfd() and allow anonymous temp files
Rework output sync to lock a temp file on POSIX
[SV 62840] Don't change IO buffering before printing version
Fix tests for MacOS and Windows
bootstrap: Update to the latest gnulib bootstrap model
Sanitize tar file ownership, mode, and order
Ensure debug output ends in newline
[SV 63016] Don't fail exporting to $(shell ...)
[SV 63040] shell: Fall back to the callers environment
[SV 63037] Fix tests for newer OS / compiler
Clean up maintMakefile
Enhance the make.texi formatting
[SV 62898] Document ways to hide special chars from make functions
Support the MAKE_TMPDIR environment variable
* src/shuffle.c: Minor coding changes.
* doc/make.texi (How Make Works): Clarify default goal exceptions.
[SV 13862] Implement the .WAIT special target
* doc/make.texi (Parallel Disable): Add clarifications.
[SV 12078, SV 62809] Rebuild grouped targets if any is missing
* tests/scripts/features/statipattrules: [SV 17374] Add test
* tests/script/parallelism: Force wait to remove races.
Release GNU make 4.3.90
* configure.ac: Update to GNU make 4.3.91
* src/misc.c (strncasecmp): Use size_t for length to match std.
* maintMakefile: Use gnulib ncftpput-ftp if ncftpput is missing.
* src/posixos.c (osync_clear): Don't close invalid FDs.
Always restore global environ if we use vfork
Provide new functions to convert long long to string
* README.git: Announce releases to the platform-testers list
* doc/make.texi: Update out of date behavior for grouped targets.
Implement a simple xorshift 32bit random number generator
* src/function.c: Change int to uint to align with gmk_func_ptr
* src/main.c (main): Add debug output for jobserver and osync.
* NEWS: Announce deprecation of OS/2 and AmigaOS ports
* src/remake.c (update_file_1): Return valid enum element, not 0.
* src/filedef.h (is_ordinary_mtime): Check for "ordinary" mod time.
* doc/make.texi (Prerequisite Types): [SV 58056] Clarify ordering.
[SV 63098] Temporarily revert the change to pattern rule behavior
* NEWS: Deprecate Xenix
Add support for intmax_t
* src/arscan.c (ar_scan): Avoid sign comparison warnings
* src/misc.c (make_lltoa): Use printf format macro from makeint.h
Clean up some warnings on Windows builds
Set the proper type for variables set in signal handlers
* src/posixos.c (job_root): Remember root jobserver instances
[SV 63157] Ensure temporary files are removed when signaled
Use (void) rather than () in function declarations
[SV 63215] Remember the random seed for shuffle mode
* src/job.c: [SV 63185] Include sys/loadavg.h if needed.
Remove template files to simplify distribution creation
Check for recipe line count overflow before it overflows
Add preprocessor macros for different platforms
Add ISDIRSEP() helper macro and use it
Rework temp file handling to avoid GNU libc warnings
Update URLs to use https rather than http
* NEWS: Use GNU Make instead of GNU make
* AUTHORS: Update the authors list.
* NEWS: Release GNU make 4.3.91
Enhance tests to work on different systems
Collect failure details when the regression tests fail
[SV 63098] Enhance detection of missing peer also-make targets
Set PATH_MAX on systems without a default value
* configure.ac: Check that we can link with Guile
Provide a maintainer-only debug method
* src/rule.c (get_rule_defn): Don't use STRING_SIZE_TUPLE in mempcpy
* src/misc.c (get_tmpdir): Report errors if tmpdirs are invalid
* src/output.c (_outputs): Don't use invalid output sync FDs
[SV 63260] Don't recurse forever if setup_tmpfile() fails
Release GNU Make 4.3.92
* Makefile.am (check-regression): Add a random suffix to results file
Increase the test framework timeout from 5s to 60s
* tests/scripts/features/exec: Don't test with C shells
* src/job.c: [SV 63185] Don't use ifdef with HAVE_DECL_* macros
[SV 62174] Force locale to be "C" before retrieving error messages
* src/posixos.c (os_anontmp): [SV 63287] Only fail O_TMPFILE once
tests: Avoid the use of File::Temp->newdir()
* build.sh: Allow a "keep-going" mode during builds
Avoid C99 constructs
Fix issues found by ASAN and Coverity
* README.git: Update and clarify release operations
Release GNU Make 4.4
Pete Dietl (1):
* src/job.c (child_execute_job): Update gnulib find_in_given_path()
Sergei Trofimovich (2):
[SV 62100] Add '--shuffle' option support
[SV 63047] Fix shuffle of SECONDEXPANSION prerequisites
Tobias Stoeckmann (1):
* src/remake.c (name_mtime): Reserve space for nul in readlink result
U2FsdGVkX1 (1):
* src/commands.c (fatal_error_signal) [W32]: Use %lu for DWORD.
Fontes
1 ,
2
Comentários
Postar um comentário
olá, seja bem vindo ao Linux Dicas e suporte !!