diff options
Diffstat (limited to 'src/kmk/ChangeLog')
-rw-r--r-- | src/kmk/ChangeLog | 845 |
1 files changed, 842 insertions, 3 deletions
diff --git a/src/kmk/ChangeLog b/src/kmk/ChangeLog index d923a80..d135d1c 100644 --- a/src/kmk/ChangeLog +++ b/src/kmk/ChangeLog @@ -1,3 +1,842 @@ +2010-07-28 Paul Smith <psmith@gnu.org> + + Version 3.82 released. + + * configure.in: Change release version. + * NEWS: Change the date. + + * read.c (parse_file_seq): Remove GLOB_NOSORT for + backward-compatibility. We'll add it back in next release. + * NEWS: Note it. + +2010-07-24 Eli Zaretskii <eliz@gnu.org> + + * job.c (pid2str) [WINDOWS32]: Fix CPP conditionals for using %Id + format. + +2010-07-18 Paul Smith <psmith@gnu.org> + + * configure.in: Switch bsd_signal to AC_CHECK_DECLS() to make sure + we have a declaration. Fixes Savannah bug #25713 (maybe?) + * doc/make.texi (Complex Makefile): Cleanup variable assignments. + (One Shell): New subsection for the .ONESHELL special target. + + Patches by Ozkan Sezer <sezeroz@gmail.com>: + + * misc.c (strncasecmp): Local implementation for systems without. + * config.h.W32.template (HAVE_STRNICMP): Define on Windows. + * configure.in: Check for strncasecmp/strncmpi/strnicmp. + * job.c [WINDOWS32]: Don't define dup2 on Windows. + (pid2str): Use "%Id" even with MSVC + (exec_command): Cast to pid_t when calling pid2str(). + * w32/subproc/sub_proc.c [WINDOWS32]: Include config.h first. + Use stddef.h on MSVC to get intptr_t. + * w32/subproc/misc.c [WINDOWS32]: Include config.h first. + * w32/compat/dirent.c [WINDOWS32]: Include config.h first. + (readdir): Cast -1 to correct type for d_ino. + * w32/pathstuff.c [WINDOWS32]: Ensure make.h is included first. + * make.h [WINDOWS32]: Don't prototype alloca() on Windows. + Add configuration for strncasecmp(). + * main.c (ADD_SIG) [WINDOWS32]: Avoid warnings in MSVC. + * config.h.W32.template [WINDOWS32]: Don't warn on unsafe + functions or variables. + * NMakefile.template [WINDOWS32]: Remove /MACHINE:I386. + * main.c (clean_jobserver): Cast due to MSVC brokenness. + (decode_switches): Ditto. + * vpath.c (construct_vpath_list): Ditto. + * rule.c (freerule): Ditto. + * ar.c (ar_glob): Ditto. + +2010-07-16 Boris Kolpackov <boris@codesynthesis.com> + + * misc.c (concat): Fix buffer overrun. + +2010-07-12 Paul Smith <psmith@gnu.org> + + Update copyrights to add 2010. + + * build_w32.bat: Support for MSVC Windows x86_64 builds. + * job.c: Don't define execve() on MSVC/64bit. + Patch by Viktor Szakats. Fixes Savannah bug #27590. + +2010-07-12 Eli Zaretskii <eliz@gnu.org> + + * make.h (alloca) [!__GNUC__]: Don't define prototype. + (int w32_kill): Use pid_t for process ID argument. + Fixes Savannah bug #27809. + +2010-07-12 Paul Smith <psmith@gnu.org> + + Integrated new .ONESHELL feature. + Patch by David Boyce <dsb@boyski.com>. Modified by me. + + * NEWS: Add a note about the new feature. + * job.c (is_bourne_compatible_shell): Determine whether we're + using a standard POSIX shell or not. + (start_job_command): Accept '-ec' as POSIX shell flags. + (construct_command_argv_internal): If one_shell is set and we are + using a POSIX shell, remove "interior" prefix characters such as + "@", "+", "-". Also treat "\n" as a special character when + choosing the slow path, if ONESHELL is set. + * job.h (is_bourne_compatible_argv): Define the new function. + + * make.h (one_shell): New global variable to remember setting. + * main.c: Declare it. + * read.c (record_files): Set it. + * commands.c (chop_commands): If one_shell is set, don't chop + commands into multiple lines; just keep one line. + +2010-07-09 Eli Zaretskii <eliz@gnu.org> + + * w32/subproc/sub_proc.c: Include stdint.h. + (sub_process_t): Use intptr_t for file handles and pid_t for + process ID. + (process_pipes, process_init_fd, process_begin): Use intptr_t for + file handles and pid_t for process ID. Fixes Savannah bug #27809. + Patch by Ozkan Sezer <sezeroz@gmail.com> + + * function.c (abspath): Support absolute file names in UNC format. + Fixes Savannah bug #30312. + + * job.c (pid2str) [WINDOWS32]: Don't use %Id with GCC < 4.x. + (exec_command) [WINDOWS32]: Use pid2str instead of non-portable + %Id. + + * main.c (handle_runtime_exceptions): Use %p to print addresses, + to DTRT on both 32-bit and 64-bit hosts. Savannah bug #27809. + + * job.c (w32_kill, start_job_command, create_batch_file): Use + pid_t for process IDs and intptr_t for the 1st arg of + _open_osfhandle. + * function.c (windows32_openpipe): Use pid_t for process IDs and + intptr_t for the 1st arg of _open_osfhandle. + (func_shell): Use pid_t for process IDs. + * main.c (main) [WINDOWS32]: Pacify the compiler. + * config.h.W32.template (pid_t): Add a definition for 64-bit + Windows builds that don't use GCC. Fixes Savannah bug #27809. + Patch by Ozkan Sezer <sezeroz@gmail.com> + +2010-07-07 Paul Smith <psmith@gnu.org> + + * configure.in: Bump to a new prerelease version 3.81.91. + +2010-07-06 Paul Smith <psmith@gnu.org> + + * main.c (main): Set a default value of "-c" for .SHELLFLAGS. + * NEWS: Mention the new behavior of .POSIX and the new .SHELLFLAGS + variable. + * job.c (construct_command_argv): Retrieve the .SHELLFLAGS value + and pass it to construct_command_argv_internal(). + (construct_command_argv_internal): If .SHELLFLAGS is non-standard + use the slow path. Use that value instead of hard-coded "-c". + +2010-07-05 Paul Smith <psmith@gnu.org> + + * implicit.c (pattern_search): lastslash can be const. + * dir.c (downcase): Remove unused variable. + * hash.c (hash_init): Cast sizeof for error message. + * arscan.c (ar_scan): Cast to char* for WINDOWS32. + (ar_member_touch): Ditto. + * ar.c (glob_pattern_p): Avoid symbol collision: open -> opened + * signame.c (strsignal): Ditto: signal -> sig + * job.c (create_batch_file): Ditto: error -> error_string + (pid2str): Portably convert a pid_t into a string + (reap_children): Use it. + (start_waiting_job): Use it. + Savannah bug #27809. Patch by Ozkan Sezer <sezeroz@gmail.com> + +2010-07-03 Paul Smith <psmith@gnu.org> + + * read.c (parse_file_seq): All archive groups must end with ')' as + the LAST character in a word. If there is no word ending in ')' + then it's not an archive group. Fixes Savannah bug #28525. + +2010-07-01 Paul Smith <psmith@gnu.org> + + * main.c (main): Append optional features using separate calls. + Not as efficient but not all compilers allow conditionals inside + macro calls. Fixes Savannah bug #29244. + +2010-01-10 Paul Smith <psmith@gnu.org> + + * make.h (patheq): Rename strieq() to patheq() for clarity. + * dir.c (dir_contents_file_exists_p): Use it. + + * dir.c (file_impossible): Convert xmalloc/memset to xcalloc. + * file.c (enter_file): Ditto. + * job.c (new_job): Ditto. + +2009-12-11 Eli Zaretskii <eliz@gnu.org> + + * job.c (construct_command_argv_internal) <sh_cmds_dos> + [WINDOWS32]: Add "echo." and a few more commands that are built + into cmd.exe. Fixes Savannah bug #28126. + + * file.c (lookup_file) [HAVE_DOS_PATHS]: Treat '\\' like we do + with '/'. + +2009-11-15 Paul Smith <psmith@gnu.org> + + Patches for VMS provided by Hartmut Becker <Hartmut.Becker@hp.com> + + * vmsjobs.c (ctrlYPressed) [VMS]: Deal with CTRL-Y. + (vmsHandleChildTerm) [VMS]: Ditto. + (astYHandler) [VMS]: Ditto. + (tryToSetupYAst) [VMS]: Ditto. + (child_execute_job) [VMS]: Ditto. + + * vmsify.c (trnlog) [VMS]: Fix const errors. + (vmsify) [VMS]: Ditto. + + * readme.vms [VMS]: Update with notes for 3.82. + + * job.h (comname) [VMS]: Remember the temporary command filename + + * dir.c (vmsify) [VMS]: Fix const errors. + (vms_hash) [VMS]: Ditto. + (vmsstat_dir) [VMS]: Ditto. + (find_directory) [VMS]: Fix case-insensitive option for VMS + (dir_contents_file_exists_p) [VMS]: Ditto. + (file_impossible) [VMS]: Ditto. + + * config.h-vms.template (HAVE_FDOPEN) [VMS]: Have it. + (HAVE_STRCASECMP) [VMS]: Ditto. + + * arscan.c (VMS_get_member_info) [VMS]: Fix timezone computation. + (ar_scan) [VMS]: Fix const error. + +2009-11-12 Boris Kolpackov <boris@codesynthesis.com> + + * vpath.c (vpath_search, selective_vpath_search): Add index arguments + which allows the caller to get the index of the matching directory. + + * make.h (vpath_search): Update prototype. + + * remake.c (library_search): Implement linker-compatible library + search. Use the new VPATH_SEARCH index functionality to keep track + of the directory index for each match. Select the match with the + lowest directory index. + + * implicit.c (pattern_search): Pass NULL for the index arguments in + the VPATH_SEARCH call. + + * doc/make.texi (Directory Search for Link Libraries): Describe the + new search behavior. + + * NEWS: Add a note about the new behavior. + +2009-10-25 Paul Smith <psmith@gnu.org> + + * AUTHORS, et.al.: Update copyright years. + + * implicit.c (stemlen_compare): Fix qsort() compare bug that + caused implicit rules with equal stem lengths to be sorted + indeterminately. + +2009-10-24 Paul Smith <psmith@gnu.org> + + * main.c (usage): Add --eval to the usage string. + (switches): Add the --eval switch. + (main): If --eval is given, add them to the simply-expanded variable + -*-eval-flags-*- (necessary to allow recursion to work properly). + (define_makeflags): Add -*-eval-flags-*- to MAKEFLAGS. + + * NEWS: Describe the new --eval command line argument. + * doc/make.texi (Options Summary): Document --eval. + + * dep.h: eval_buffer() returns void. + * read.c (eval_buffer): Ditto. + (eval): Ditto. + + * variable.h (define_variable_cname): New macro for constant + variable names. + * default.c (set_default_suffixes): Use it. + * main.c (main): Ditto. + (handle_non_switch_argument): Ditto. + (define_makeflags): Ditto. + * read.c (read_all_makefiles): Ditto. + * variable.c (define_automatic_variables): Ditto. + + * commands.c (dep_hash_cmp): Avoid casts. + (dep_hash_1): Ditto. + (dep_hash_2): Ditto. + +2009-10-22 Boris Kolpackov <boris@codesynthesis.com> + + * read.c (read_all_makefiles): Mark the default makefile dependency + dontcare. + +2009-10-07 Boris Kolpackov <boris@codesynthesis.com> + + * read.c (do_undefine): Free the expanded variable name. + + * commands.c (dep_hash_cmp, set_file_variables): Move the order-only + to normal upgrade logic from dep_hash_cmp to set_file_variables. + +2009-10-06 Boris Kolpackov <boris@codesynthesis.com> + + * dep.h (uniquize_deps): Remove. + + * read.c (uniquize_deps): Merge into set_file_variables in + commands.c. + (dep_hash_1, dep_hash_2, dep_hash_cmp): Move to commands.c. + + * commands.c (set_file_variables): Avoid modifying the dep + chain to achieve uniqueness. Fixes savannah bug 25780. + + * implicit.c (pattern_search): Instead of re-setting all automatic + variables for each rule we try, just update $*. + +2009-10-06 Boris Kolpackov <boris@codesynthesis.com> + + * variable.h (undefine_variable_in_set): New function declaration. + (undefine_variable_global): New macro. + + * variable.c (undefine_variable_in_set): New function implementation. + + * read.c (vmodifiers): Add undefine_v modifier. + (parse_var_assignment): Parse undefine. + (do_undefine): Handle the undefine directive. + (eval): Call do_undefine if undefine_v is set. + + * main.c (.FEATURES): Add a keyword to indicate the new feature. + + * doc/make.texi (Undefine Directive): Describe the new directive. + + * NEWS: Add a note about the new directive. + +2009-10-05 Boris Kolpackov <boris@codesynthesis.com> + + * implicit.c (pattern_search): Initialize file variables only + if we need to parse a rule that requires the second expansion. + +2009-10-03 Paul Smith <psmith@gnu.org> + + * make.h: Include <alloca.h> even on systems where __GNUC__ is + defined. Not sure why it was done the other way. + Requested by David Boyce <dsb@boyski.com>. + +2009-09-30 Boris Kolpackov <boris@codesynthesis.com> + + * dep.h (dep): Add the DONTCARE bitfield. + + * filedef.h (file):Add the NO_DIAG bitfield. + + * read.c (eval_makefile): Set the DONTCARE flag in struct dep, + not struct file (a file can be a dependency of many targets, + some don't care, some do). + + * remake.c (update_goal_chain): Propagate DONTCARE from struct + dep to struct file before updating the goal and restore it + afterwards. + (update_file): Don't prune the dependency graph if this target + has failed but the diagnostics hasn't been issued. + (complain): Scan the file's dependency graph to find the file + that caused the failure. + (update_file_1): Use NO_DIAG instead of DONTCARE to decide + whether to print diagnostics. + + Fixes Savannah bugs #15110, #25493, #12686, and #17740. + +2009-09-28 Paul Smith <psmith@gnu.org> + + * doc/make.texi (Pattern Intro): Move the match algorithm + discussion into the "Pattern Match" node. + (Pattern Match): Expand on the pattern rule matching algorithm. + +2009-09-28 Andreas Buening <andreas.buening@nexgo.de> + + * job.c (construct_command_argv_internal) [OS2]: Don't eat too + much of the command line on a single pass. + +2009-09-28 Boris Kolpackov <boris@codesynthesis.com> + + * varible.c (create_pattern_var): Insert variables into the + PATTERN_VARS list in the shortest patterns first order. + + * implicit.c (tryrule): Add STEMLEN and ORDER members. These are + used to sort the rules. + (stemlen_compare): Compare two tryrule elements. + (pattern_search): Sort the rules so that they are in the shortest + stem first order. + + * main.c (.FEATURES): Add a keyword to indicate the new behavior. + + * doc/make.texi (Pattern-specific Variable Values): Describe the + new pattern-specific variables application order. + (Introduction to Pattern Rules): Describe the new pattern rules + search order. + + * NEWS: Add a note about the new behavior. + +2009-09-27 Paul Smith <psmith@gnu.org> + + * doc/make.texi (Double-Colon): Mention that pattern rules with + double-colons have a different meaning. Savannah bug #27497. + +2009-09-27 Juan Manuel Guerrero <juan.guerrero@gmx.de> + + * configh.dos.template: Remove unconditional definition of + SYS_SIGLIST_DECLARED. + Include <sys/version.h> because ports of GCC 4.3.0 and later no + longer include it, so macros like __DJGPP_MINOR__ are no longer + defined automatically. + + * Makefile.DOS.template (INCLUDES): Use $(prefix) and the + corresponding variables to define LIBDIR, INCLUDEDIR and LOCALEDIR + instead of using the hardcoded ones. + (SUBDIRS): doc subdir added. + (INFO_DEPS, DVIS): Values changed to 'make.info' and 'make.dvi'. + (TEXI2HTML, TEXI2HTML_FLAGS): Removed. Use makeinfo --html to + create html formated docs. texi2html may not be ported to DOS. + (make.info, make.dvi, make.ps, make.html): Make targets depend on + 'make.texi'. + (.texi.info, .texi, .texi.dvi): Now invoked recursively. Change + -I switch to look in ./ instead of ./doc. + (html): Target depend on html-recursive instead of make_1.html. + (make_1.html): Removed. + (mostlyclean-aminfo): Use $(srcdir)/doc instead of ./ as prefix. + (all-recursive): Allow for more than one subdir in the build + process. + (mostlyclean-recursive, clean-recursive, distclean-recursive) + (maintainer-clean-recursive, check-recursive): Enter in doc/ too. + (tags-recursive): Allow for more than one subdir in the build + process. + (info-recursive, dvi-recursive, ps-recursive, html-recursive): New + targets. Enter into doc/ to produce the targets. + (all-am): $(INFO_DEPS) replaced by info. + +2009-09-26 Paul Smith <psmith@gnu.org> + + * read.c (record_files): Use free_ns() to free struct nameseq. + (eval): Ditto. + + * rule.c (freerule): Use free_dep_chain(). + + * read.c (record_files): Free FILENAMES chain for implicit rules. + (eval): Static pattern targets go into the string cache. + + * function.c (string_glob): Free NAME in the nameseq chain. + +2009-09-25 Boris Kolpackov <boris@codesynthesis.com> + + * implicit.c (pattern_search): Terminate early if we haven't + found any rules to try (performance improvement). + +2009-09-25 Boris Kolpackov <boris@codesynthesis.com> + + * implicit.c (pattern_search): Merge three parallel arrays, + TRYRULES, MATCHES, and CHECKED_LASTSLASH, into one array + of struct TRYRULE. In the old version the latter two arrays + had insufficient length. + +2009-09-24 Paul Smith <psmith@gnu.org> + + * implicit.c (pattern_search): Add back support for order-only + prerequisites for secondary expansion implicit rules, that were + accidentally dropped. If we find a "|", enable order-only mode + and set IGNORE_MTIME on all deps that are seen afterward. + (pattern_search): Fix memory leaks: for intermediate files where + we've already set the file variable and pattern variable sets, be + sure to either save or free them as appropriate. + +2009-09-23 Paul Smith <psmith@gnu.org> + + Rework the way secondary expansion is stored, for efficiency. + This changes secondary expansion so that ONLY WHEN we know we have + a possibility of needing secondary expansion, do we defer the + secondary expansion. This means more parsing the deps but we use + a lot less memory (due to the strcache). Also, this fixes + Savannah bug #18622. + + * read.c (eval): Don't parse the dep string here anymore. + (record_files): Take the dep argument as an unparsed string. If + secondary expansion is enabled AND the prereq string has a '$' in + it, then set NEED_2ND_EXPANSION and keep the entire string. + Otherwise, parse the dep string here to construct the dep list + with the names in the strcache. + + * misc.c (copy_dep_chain): For NEED_2ND_EXPANSION, we need to + duplicate the name string (others are in the strcache). + + * implicit.c: Remove struct idep and free_idep_chain(): unused. + (struct patdeps): New structure to store prereq information. + (pattern_search): Use the NEED_2ND_EXPANSION flag to determine + which prerequisites need expansion, and expand only those. + + * file.c (split_prereqs): Break parse_prereqs() into two parts: this + and enter_prereqs(). split_prereqs() takes a fully-expanded string + and splits it into a DEP list, handling order-only prereqs. + (enter_prereqs): This function enters a list of DEPs into the file + database. If there's a stem defined, expand any pattern chars. + (expand_deps): Only try to expand DEPs which have NEED_2ND_EXPANSION + set. Use the above functions. + (snap_deps): Only perform second expansion on prereqs that need it, + as defined by the NEED_2ND_EXPANSION flag. + (print_prereqs): New function to print the prereqs + (print_file): Call print_prereqs() rather than print inline. + + * hash.h (STRING_COMPARE): Take advantage of strcache() by + comparing pointers. + (STRING_N_COMPARE): Ditto. + (ISTRING_COMPARE): Ditto. + + * dep.h (PARSE_FILE_SEQ): New macro to reduce casts. + (parse_file_seq): Return void* + * read.c (parse_file_seq): Return void*. + (eval): Invoke macroized version of parse_file_seq() + * default.c (set_default_suffixes): Ditto. + * file.c (split_prereqs): Ditto. + * function.c (string_glob): Ditto. + * main.c (main): Ditto. + * rule.c (install_pattern_rule): Ditto. + + * filedef.h: Add split_prereqs(), enter_prereqs(), etc. + +2009-09-16 Paul Smith <psmith@gnu.org> + + * misc.c (alloc_dep, free_dep): Now that we have xcalloc(), + convert to macros. + * dep.h: Create alloc_dep() / free_dep() macros. + + * implicit.c (pattern_search): Take advantage of the new + parse_file_seq() to add the directory prefix to each prereq. + + * dep.h: Remove multi_glob() and enhance parse_file_seq() to do it + all. Avoid reversing chains. Support adding prefixes. + * read.c (parse_file_seq): Rewrite to support globbing. Allow for + cached/non-cached results. + (eval): Remove multi_glob() & invoke new parse_file_seq(). + * rule.c (install_pattern_rule): Ditto. + * main.c (main): Ditto. + * implicit.c (pattern_search): Ditto. + * function.c (string_glob): Ditto. + * file.c (parse_prereqs): Ditto. + * default.c (set_default_suffixes): Ditto. + + * variable.c (parse_variable_definition): Don't run off the end of + the string if it ends in whitespace (found with valgrind). + + * commands.c (set_file_variables): Keep space for all targets in + $? if -B is given (found with valgrind). + +2009-09-15 Paul Smith <psmith@gnu.org> + + * misc.c (concat): Make concat() variadic so it takes >3 arguments. + (xcalloc): Add new function. + * make.h: New declarations. + + * ar.c (ar_glob_match): New calling method for concat(). + * main.c (main): Ditto. + (decode_env_switches): Ditto. + * read.c (eval_makefile): Ditto. + (tilde_expand): Ditto. + (parse_file_seq): Ditto. + * variable.c (target_environment): Ditto. + (sync_Path_environment): Ditto. + + * ar.c (ar_glob_match): Use xcalloc(). + * dir.c (file_impossible): Ditto. + * file.c (enter_file): Ditto. + * job.c (new_job): Ditto. + * read.c (parse_file_seq): Ditto. + * vmsfunctions.c (opendir): Ditto. + +2009-09-14 Rafi Einstein <rafi.einstein@gmail.com> (tiny patch) + + * w32/subproc/sub_proc.c (process_begin): Check *ep non-NULL + inside the loop that looks up environment for PATH. + +2009-08-31 Eli Zaretskii <eliz@gnu.org> + + * function.c (windows32_openpipe): Update envp after calling + sync_Path_environment. + +2009-08-02 Paul Smith <psmith@gnu.org> + + * remake.c (notice_finished_file): Ensure file->cmds is not null + before looping through them. Fixes Savannah bug #21824. + + * doc/make.texi (Wildcard Examples): Clarify when objects is + wildcard-expanded. Fixes Savannah bug #24509. Patch by Martin Dorey. + (Include): Clarify the behavior of -include. + Fixes Savannah bug #18963. + +2009-08-01 Paul Smith <psmith@gnu.org> + + * doc/make.texi (Catalogue of Rules): Clarify where -c, -F, + etc. come on the command line. Fixes Savannah bug #27093. + + * expand.c (expand_argument): If the argument is large enough use + xmalloc() instead of alloca(). Fixes Savannah bug #27143. + + * variable.c (do_variable_definition): Avoid using alloca() to + hold values, which can be large. Fixes Savannah bug #23960. + + * job.c (new_job): Use memmove() instead of strcpy() since both + pointers are in the same memory block. Fixes Savannah bug #27148. + Patch by Petr Machata. + +2009-07-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * job.c (construct_command_argv_internal): Add "ulimit" and + "unset" to the sh_cmds for Unixy shells. + +2009-07-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * configure.in: Move side-effects outside AC_CACHE_VAL arguments + that set make_cv_sys_gnu_glob, so they are also correctly set + when the cache has been populated before. + +2009-07-04 Eli Zaretskii <eliz@gnu.org> + + * function.c (func_realpath) [!HAVE_REALPATH]: Require the file to + exist, as realpath(3) does where it's supported. + +2006-07-04 Eli Zaretskii <eliz@gnu.org> + + * function.c (IS_ABSOLUTE, ROOT_LEN): New macros. + (abspath): Support systems that define HAVE_DOS_PATHS (have + drive letters in their file names). Use IS_PATHSEP instead of a + literal '/' comparison. Fixes Savannah bug #26886. + +2009-06-14 Paul Smith <psmith@gnu.org> + + * remake.c (update_file_1): Remember the original file we marked + as updating, so we can clear that flag again. If we find a target + via vpath, FILE might change. + (check_dep): Ditto. Fixes Savannah bug #13529. + Patch by Reid Madsen <reid.madsen@tek.com>. + +2009-06-13 Paul Smith <psmith@gnu.org> + + * doc/make.texi (MAKEFILES Variable): Be explicit that files + included by MAKEFILES cannot give default goals. + * read.c (eval): If set_default is not set, pass the no-default-goal + value when we read included makefiles. Fixes Savannah bug #13401. + + * ar.c (ar_name): Ensure that targets with empty parens aren't + considered archive member references: archive members must have a + non-empty "member" string. Fixes Savannah bug #18435. + + * function.c (string_glob): Rely on multi_glob() to determine + whether files exist or not. Remove call to file_exists_p() which + is not always correct. Fixes Savannah bug #21231. + * read.c (multi_glob): Add a new argument EXISTS_ONLY; if true + then only files that really exist will be returned. + * dep.h: Add new argument to multi_glob(). + * rule.c (install_pattern_rule): Ditto. + * read.c (eval): Ditto. + * main.c (main): Ditto. + * implicit.c (pattern_search): Ditto. + * file.c (parse_prereqs): Ditto. + * default.c (set_default_suffixes): Ditto. + +2009-06-09 Paul Smith <psmith@gnu.org> + + * commands.c (set_file_variables): If always_make_flag is set, + always add the prereq to $?. Fixes Savannah bug #17825. + + * remake.c (update_file_1): When rebuilding deps of FILE, also try + to rebuild the deps of all the also_make targets for that file. + Fixes Savannah bug #19108. + + * implicit.c (pattern_search): Undo test for is_target, added by + BorisK on 21 Sep 2004. This goes against step 5c in the "Implicit + Rule Search Algorithm". Fixes Savannah bug #17752. + + * main.c (clean_jobserver): Clear the jobserver_fds options and + set job_slots to the default when we clean up. + (define_makeflags): Return the new MAKEFLAGS value. + (main): Reset MAKEFLAGS in the environment when we re-exec. + Fixes Savannah bug #18124. + +2009-06-08 Paul Smith <psmith@gnu.org> + + * read.c (eval): Collapse continuations post-semicolon on target- + specific variables. Fixes Savannah bug #17521. + +2009-06-07 Paul Smith <psmith@gnu.org> + + * job.c (reap_children): For older systems without waitpid() (are + there any of these left?) run wait(2) inside EINTRLOOP to handle + EINTR errors. Fixes Savannah bug #16401. + + * (various): Debug message cleanup. Fixes Savannah bug #16469. + + * main.c: Fix bsd_signal() typedef. Fixes Savannah bug #16473. + + * file.c (snap_deps): Set SNAPPED_DEPS at the start of snapping, + not the end, to catch second expansion $(eval ...) defining new + target/prereq relationships during snap_deps. + Fixes Savannah bug #24622. + + * read.c (record_files): The second-expansion "f->updating" hack + was not completely correct: if assumed that the target with + commands always had prerequisites; if one didn't then the ordering + was messed up. Fixed for now to use f->updating to decide whether + to preserve the last element in the deps list... but this whole + area of constructing and reversing the deps list is too confusing + and needs to be reworked. Fixes Savannah bug #21198. + +2009-06-06 Paul Smith <psmith@gnu.org> + + * hash.c (hash_insert): Remove useless test for NULL. + Fixes Savannah bug #21823. + + * make.h: Move SET_STACK_SIZE determination to make.h. + * main.c (main): New global variable, STACK_LIMIT, holds the + original stack limit when make was started. + * job.c (start_job_command): Reset the stack limit, if we changed it. + Fixes Savannah bug #22010. + + * remake.c (check_dep): Only set the target's state to not-started + if it's not already running. Found this while testing -j10 builds + of glibc: various targets were being rebuilt multiple times. + Fix from Knut St. Osmundsen; fixes a problem reported in Savannah + bug #15919. + + * read.c (multi_glob): Don't pass GLOB_NOCHECK to glob(3); instead + handle the GLOB_NOMATCH error. This is to work around Sourceware.org + Bugzilla bug 10246. + +2009-06-04 Paul Smith <psmith@gnu.org> + + * read.c (eval): Skip initial whitespace (ffeed, vtab, etc.) + + * maintMakefile: Modify access of config and gnulib Savannah + modules to use GIT instead of CVS. + + * main.c (main): Initialize the LENGTH field in SHELL_VAR. + Fixes Savannah bug #24655. + + * read.c (eval_buffer): Don't dereference reading_file if it's NULL; + this can happen during some invocations of $(eval ...) for example. + Fixes Savannah bug #24588. Patch by Lars Jessen <ljessen@ljessen.dk> + +2009-06-02 Paul Smith <psmith@gnu.org> + + * configure.in: Check for fileno() + * read.c (eval_makefile): If fileno() is available, set CLOSE_ON_EXEC + for the makefile file so invocations of $(shell ...) don't inherit it. + Fixes Savannah bug #24277. + +2009-06-01 Paul Smith <psmith@gnu.org> + + * main.c (main): The previous fix for .DEFAULT_GOAL had issues; + expansion was handled incorrectly. Rework the default goal + handling to save the variable only. Remove default_goal_file and + default_goal_name. + * read.c (eval): Check default_goal_var, not default_goal_name. + * read.c (record_target_var): Don't check default_goal_file here. + +2009-05-31 Paul Smith <psmith@gnu.org> + + * main.c (main): Expand the .DEFAULT_GOAL variable before using + it, and if the multi_glob() returns nothing (say it expanded to + nothing but spaces) then don't crash. Fixes Savannah bug #25697. + + * doc/make.texi (Quick Reference): Add $(if ..), $(or ..), and + $(and ..) to the reference. Fixes Savannah bug #25694. + + * make.1: Be clear that some recipes will be executed even with -n. + * doc/make.texi: Ditto. Fixes Savannah bug #25460. + + * doc/make.texi (Override Directive): Make more clear how + overrides and appends interact. + Elucidates part of Savannah bug #26207. + + * read.c (record_target_var): Don't reset the origin on + target-specific variables; try_variable_definition() will handle + this correctly. Fixes Savannah bug #26207. + + * maintMakefile (do-po-update): Copy PO files into $(top_srcdir). + Fixes Savannah bug #25712. + + * implicit.c (pattern_search): Keep a pointer to the beginning of + the filename and save that instead of the constructed pointer. + Fixes Savannah bug #26593. + Patch by Mark Seaborn <mrs@mythic-beasts.com> + +2009-05-30 Paul Smith <psmith@gnu.org> + + * doc/make.texi (Multi-Line): Add a description of the new abilities + of define/endef. Rename "Sequences" to "Multi-Line" and fix some + "command sequence" vs. "recipe" syntax. + * read.c (do_define): Modify to allow assignment tokens (=, :=, etc.) + after a define, to create variables with those flavors. + +2009-05-25 Paul Smith <psmith@gnu.org> + + Reworked the parser for variable assignments to allow multiple + modifiers, and in any order. Also allows variable and + prerequisites to be modifier names ('export', 'private', etc.) + + * NEWS: Add notes about user-visible changes. + + * read.c (struct vmodifiers): Remember what modifiers were seen. + (parse_var_assignment): New function to parse variable assignments. + (eval): Call the new function. Handle variable assignments earlier. + + * variable.c (parse_variable_definition): Only parse; don't create var. + (assign_variable_definition): Call parse, then create the var. + +2009-05-24 Paul Smith <psmith@gnu.org> + + * doc/make.texi: Fix the ISBN for the GNU make manual. Incorrect + value noticed by Hans Stol <hans.stol@nc3a.nato.int>. + +2009-03-14 Eli Zaretskii <eliz@gnu.org> + + * w32/pathstuff.c (convert_Path_to_windows32): Fix last change. + Fixes Savannah bug #25412. + + * w32/subproc/sub_proc.c <top level>: Update Copyright years. Add + prototype for xmalloc. + (find_file): Accept 3 arguments PATH_VAR, FULL_FNAME, and FULL_LEN + instead of an LPOFSTRUCT pointer. Use xmalloc instead of malloc. + Loop over an array of extensions, instead of duplicating the same + code inline. Use SearchPath followed by CreateFile, instead of + the obsolete OpenFile. Fixes Savannah bug #17277. + (process_begin): Find $(PATH) in `envp', and pass a pointer to it + to `find_file'. Fixes Savannah bug #25662. + +2009-03-07 Eli Zaretskii <eliz@gnu.org> + + * function.c (func_shell): Don't close pipedes[1] if it is -1. + Fixes Savannah bug #20495. + +2009-02-28 Ralf Wildenhues <address@hidden> + + * doc/make.texi (Instead of Execution): Document interaction of + -t with phony targets. + +2009-02-23 Ramon Garcia <ramon.garcia.f@gmail.com> + + Introduce a new keyword "private" which applies to target-specific + variables and prevents their values from being inherited. + + * variable.h (struct variable): Add private_var flag to each variable. + Add a flag to specify which list entry switches to the parent target. + * variable.c (define_variable_in_set): Initialize private_var flag. + (lookup_variable): Skip private variables in parent contexts. + (initialize_file_variables): Set next_is_parent appropriately. + (print_variable): Show the private_var flag. + * read.c (eval): Recognize the private keyword. + (record_target_var): Set private_var. + * doc/make.texi (Suppressing Inheritance): Add documentation. + +2008-10-26 Paul Smith <psmith@gnu.org> + + * configure.in: Check for strndup(). + * misc.c (xstrndup): Rename savestring to xstrndup. Use strndup + if it's available. + * make.h: Rename savestring to xstrndup. + * commands.c (chop_commands): Ditto. + * function.c (func_foreach): Ditto. + * read.c (eval, record_files): Ditto. + * variable.c (define_variable_in_set): Ditto. + 2008-09-30 Eli Zaretskii <eliz@gnu.org> * build_w32.bat (GCCBuild): Use "-gdwarf-2 -g3" instead of @@ -815,7 +1654,7 @@ 2005-12-12 Paul D. Smith <psmith@gnu.org> * make.1: Fix some display errors and document all existing options. - Patch provided by Mike Frysinger <vapier@gentoo.org>. + Patch by Mike Frysinger <vapier@gentoo.org>. 2005-12-11 Paul D. Smith <psmith@gnu.org> @@ -3162,8 +4001,8 @@ See ChangeLog.2, available in the CVS repository at: for earlier changes. -Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software -Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free +Software Foundation, Inc. This file is part of GNU Make. GNU Make is free software; you can redistribute it and/or modify it under the |