mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2024-10-23 04:46:38 +00:00
cd6a65e8b8
There has been a long standind bug where INCLUDE_DIRS /usr/include is included twice. The more important problem is it is before the /usr/local/include. This commit fixes the ordering. So now /usr/local/include comes before /usr/include, which it should, but this is a change in behaviour. Closes: #493523 Signed-off-by: Manoj Srivastava <srivasta@debian.org>
233 lines
13 KiB
Text
233 lines
13 KiB
Text
make-dfsg (4.3-3) unstable; urgency=medium
|
|
|
|
* Fix ordering if include dirs
|
|
There has been a long standind bug where INCLUDE_DIRS /usr/include is
|
|
included twice. The more important problem is it is before the
|
|
/usr/local/include. This commit fixes the ordering. So now
|
|
/usr/local/include comes before /usr/include, which it should, but
|
|
this is a change in behaviour.
|
|
|
|
-- Manoj Srivastava <srivasta@debian.org> Fri, 05 Jun 2020 18:59:32 -0700
|
|
|
|
make-dfsg (4.3-1) unstable; urgency=medium
|
|
|
|
* 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.
|
|
* NOTE: Deprecated behavior.
|
|
Contrary to the documentation, suffix rules with prerequisites are being
|
|
treated BOTH as simple targets AND as pattern rules. Further, the
|
|
prerequisites are ignored by the pattern rules. POSIX specifies that in
|
|
order to be a suffix rule there can be no prerequisites defined. In this
|
|
release if POSIX mode is enabled then rules with prerequisites cannot be
|
|
suffix rules. If POSIX mode is not enabled then the previous behavior is
|
|
preserved (a pattern rule with no extra prerequisites is created) AND a
|
|
warning about this behavior is generated:
|
|
warning: ignoring prerequisites on suffix rule definition
|
|
The POSIX behavior will be adopted as the only behavior in a future release
|
|
of GNU make so please resolve any warnings.
|
|
|
|
|
|
-- Manoj Srivastava <srivasta@debian.org> Wed, 20 May 2020 13:56:50 -0700
|
|
|
|
make-dfsg (4.1-2) unstable; urgency=low
|
|
|
|
WARNING: Backward-incompatibility!
|
|
|
|
The ar program in the binutils package in Debian is now configured
|
|
with --enable-deterministic-archives. This change makes the archives
|
|
reproducible, by setting the UID, GID, and timestamp to 0. However,
|
|
when dealing with archives created with the libxx(*.o) style rules,
|
|
make needs the timestamp of the file in order to decide to update it
|
|
or not. With the current deterministic behavior of ar, the time stamp
|
|
is always 0. This has consequences, since make will fall back to always
|
|
adding each member to the archive, whether or not it is required. This
|
|
is a change in behaviour, and, for instance, it makes make fail to
|
|
build, failing 7 out of 10 archive tests.
|
|
.
|
|
Since binutils will create archive with time stamps set to 0 when
|
|
running in "deterministic" mode, make will always try to update such
|
|
members. When this is detected, make will emit a warning.
|
|
.
|
|
There is some online discussion:
|
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798804
|
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798913
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=1195883
|
|
|
|
-- Manoj Srivastava <srivasta@debian.org> Mon, 18 Jan 2016 16:09:19 -0800
|
|
|
|
make-dfsg (4.0-1) experimental; urgency=low
|
|
|
|
WARNING: Backward-incompatibility!
|
|
If .POSIX is specified, then make adheres to the POSIX backslash/newline
|
|
handling requirements, which introduces the following changes to the
|
|
standard backslash/newline handling in non-recipe lines:
|
|
* Any trailing space before the backslash is preserved
|
|
* Each backslash/newline (plus subsequent whitespace) is converted to a
|
|
single space
|
|
|
|
-- Manoj Srivastava <srivasta@debian.org> Sat, 12 Apr 2014 23:56:34 -0700
|
|
|
|
make-dfsg (3.82-1) experimental; urgency=low
|
|
|
|
* New upstream release. A complete list of bugs fixed in this version is
|
|
available here: http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set=custom
|
|
* WARNING: Future backward-incompatibility!
|
|
Wildcards are not documented as returning sorted values, but up to and
|
|
including this release the results have been sorted and some makefiles
|
|
are apparently depending on that. In the next release of GNU make,
|
|
for performance reasons, we may remove that sorting. If your
|
|
makefiles require sorted results from wildcard expansions, use the
|
|
$(sort ...) function to request it explicitly.
|
|
* WARNING: Backward-incompatibility!
|
|
The POSIX standard for make was changed in the 2008 version in a
|
|
fundamentally incompatible way: make is required to invoke the shell
|
|
as if the '-e' flag were provided. Because this would break many
|
|
makefiles that have been written to conform to the original text of
|
|
the standard, the default behavior of GNU make remains to invoke the
|
|
shell with simply '-c'. However, any makefile specifying the .POSIX
|
|
special target will follow the new POSIX standard and pass '-e' to the
|
|
shell. See also .SHELLFLAGS below.
|
|
* WARNING: Backward-incompatibility!
|
|
The '$?' variable now contains all prerequisites that caused the
|
|
target to be considered out of date, even if they do not exist
|
|
(previously only existing targets were provided in $?).
|
|
* WARNING: Backward-incompatibility!
|
|
As a result of parser enhancements, three backward-compatibility
|
|
issues exist: first, a prerequisite containing an "=" cannot be
|
|
escaped with a backslash any longer. You must create a variable
|
|
containing an "=" and use that variable in the prerequisite. Second,
|
|
variable names can no longer contain whitespace, unless you put the
|
|
whitespace in a variable and use the variable. Third, in previous
|
|
versions of make it was sometimes not flagged as an error for explicit
|
|
and pattern targets to appear in the same rule. Now this is always
|
|
reported as an error.
|
|
* WARNING: Backward-incompatibility!
|
|
The pattern-specific variables and pattern rules are now applied in
|
|
the shortest stem first order instead of the definition order
|
|
(variables and rules with the same stem length are still applied in
|
|
the definition order). This produces the usually-desired behavior
|
|
where more specific patterns are preferred. To detect this feature
|
|
search for 'shortest-stem' in the .FEATURES special variable.
|
|
* WARNING: Backward-incompatibility!
|
|
The library search behavior has changed to be compatible with the
|
|
standard linker behavior. Prior to this version for prerequisites
|
|
specified using the -lfoo syntax make first searched for libfoo.so in
|
|
the current directory, vpath directories, and system directories. If
|
|
that didn't yield a match, make then searched for libfoo.a in these
|
|
directories. Starting with this version make searches first for
|
|
libfoo.so and then for libfoo.a in each of these directories in order.
|
|
|
|
-- Manoj Srivastava <srivasta@debian.org> Mon, 18 Jul 2011 00:38:04 -0700
|
|
|
|
make (3.80+3.81.b3.1-1) unstable; urgency=low
|
|
|
|
* WARNING: Backward-incompatibility! (this may help CDBS users)
|
|
GNU make now implements a generic "second expansion" feature on the
|
|
prerequisites of both explicit and implicit (pattern) rules. In order
|
|
to enable this feature, the special target '.SECONDEXPANSION' must be
|
|
defined before the first target which takes advantage of it. If this
|
|
feature is enabled then after all rules have been parsed the
|
|
prerequisites are expanded again, this time with all the automatic
|
|
variables in scope. This means that in addition to using standard
|
|
SysV $$@ in prerequisites lists, you can also use complex functions
|
|
such as $$(notdir $$@) etc. This behavior applies to implicit rules,
|
|
as well, where the second expansion occurs when the rule is matched.
|
|
However, this means that you need to double-quote any "$" in your
|
|
filenames; instead of "foo: boo$$bar" you now must write "foo:
|
|
foo$$$$bar". Note that the SysV $$@ etc. feature, which used to be
|
|
available by default, is now ONLY available when the .SECONDEXPANSION
|
|
target is defined. If your makefiles take advantage of this SysV
|
|
feature you will need to update them.
|
|
* New special variables available in this release:
|
|
- .INCLUDE_DIRS: Expands to a list of directories that make searches
|
|
for included makefiles.
|
|
* New functions available in this release:
|
|
- $(info ...) prints its arguments to stdout. No makefile name or
|
|
line number info, etc. is printed.
|
|
- $(flavor ...) returns the flavor of a variable.
|
|
|
|
-- Manoj Srivastava <srivasta@debian.org> Mon, 12 Dec 2005 13:38:47 -0600
|
|
|
|
make (3.80+3.81.b3-1) unstable; urgency=low
|
|
|
|
* WARNING: Backward-incompatibility!
|
|
GNU make now implements a generic "second expansion" feature on the
|
|
prerequisites of both explicit and implicit (pattern) rules. After
|
|
all rules have been parsed the prerequisites are expanded again, this
|
|
time with all the automatic variables in scope. This means that in
|
|
addition to using standard SysV $$@ in prerequisites lists, you can
|
|
also use complex functions such as $$(notdir $$@) etc. This behavior
|
|
applies to implicit rules, as well, where the second expansion occurs
|
|
after the rule is matched. However, this means that you need to
|
|
double-quote any "$" in your filenames; instead of "foo: boo$$bar" you
|
|
now must write "foo: foo$$$$bar".
|
|
* WARNING: Backward-incompatibility!
|
|
In order to comply with POSIX, the way in which GNU make processes
|
|
backslash-newline sequences in command strings has changed. See the
|
|
GNU make manual section "Command Execution" for details.
|
|
* New command-line option: -L (--check-symlink-times). On systems that
|
|
support symbolic links, if this option is given then GNU make will use
|
|
the most recent modification time of any symbolic links that are used
|
|
to resolve target files. The default behavior remains as it always
|
|
has: use the modification time of the actual target file only.
|
|
* The "else" conditional line can now be followed by any other legal
|
|
conditional on the same line: this does not increase the depth of the
|
|
conditional nesting, so only one "endif" is required to close the
|
|
conditional.
|
|
* All pattern-specific variables that match a given target are now used
|
|
(previously only the first match was used).
|
|
* Target-specific variables can be marked as exportable using the
|
|
"export" keyword.
|
|
* In a recursive $(call ...) context, any extra arguments from the outer
|
|
call are now masked in the context of the inner call.
|
|
* Implemented a solution for the "thundering herd" problem with "-j -l".
|
|
This version of GNU make uses an algorithm suggested by Thomas Riedl
|
|
<thomas.riedl@siemens.com> to track the number of jobs started in the
|
|
last second and artificially adjust GNU make's view of the system's
|
|
load average accordingly.
|
|
* New special variables available in this release:
|
|
- .FEATURES: Contains a list of special features available in this
|
|
version of GNU make.
|
|
- .DEFAULT_GOAL: Set the name of the default goal make will
|
|
use if no goals are provided on the command line.
|
|
- MAKE_RESTARTS: If set, then this is the number of times this
|
|
instance of make has been restarted (see "How Makefiles Are Remade"
|
|
in the manual).
|
|
- New automatic variable: $| (added in 3.80, actually): contains all
|
|
the order-only prerequisites defined for the target.
|
|
* New functions available in this release:
|
|
- $(lastword ...) returns the last word in the list. This gives
|
|
identical results as $(word $(words ...) ...), but is much faster.
|
|
- $(abspath ...) returns the absolute path (all "." and ".."
|
|
directories resolved, and any duplicate "/" characters removed) for
|
|
each path provided.
|
|
- $(realpath ...) returns the canonical pathname for each path
|
|
provided. The canonical pathname is the absolute pathname, with
|
|
all symbolic links resolved as well.
|
|
- $(info ...) prints informative messages to stdout. No makefile
|
|
name or line number info, etc. is printed, just the message.
|
|
* Changes made for POSIX compatibility:
|
|
- Only touch targets (under -t) if they have at least one command.
|
|
- Setting the SHELL make variable does NOT change the value of the
|
|
SHELL environment variable given to programs invoked by make. As
|
|
an enhancement to POSIX, if you export the make variable SHELL then
|
|
it will be set in the environment, just as before.
|
|
|
|
-- Manoj Srivastava <srivasta@debian.org> Fri, 9 Dec 2005 21:28:14 -0600
|