summaryrefslogtreecommitdiff
path: root/scripts/checksym.awk
diff options
context:
space:
mode:
authorJohn Bowler <jbowler@acm.org>2011-12-08 09:37:24 -0600
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2011-12-08 09:37:24 -0600
commiteb26ee66024076c3d5db98be3d0617a342719037 (patch)
tree4ae02ed24f5caaa11d65a8707df5e182ebbf25cf /scripts/checksym.awk
parent90a87c88534f22c8f5ef9b7cd35d34ae90338981 (diff)
downloadlibpng-eb26ee66024076c3d5db98be3d0617a342719037.tar.gz
[libpng16] Fixed race conditions in parallel make builds. With higher degrees
of parallelism during 'make' the use of the same temporary file names such as 'dfn*' can result in a race where a temporary file from one arm of the build is deleted or overwritten in another arm. This changes the temporary files for suffix rules to always use $* and ensures that the non-suffix rules use unique file names.
Diffstat (limited to 'scripts/checksym.awk')
-rwxr-xr-xscripts/checksym.awk10
1 files changed, 6 insertions, 4 deletions
diff --git a/scripts/checksym.awk b/scripts/checksym.awk
index ba4c99b56..6857dff1c 100755
--- a/scripts/checksym.awk
+++ b/scripts/checksym.awk
@@ -5,8 +5,9 @@
# awk -f checksym.awk official-def list-to-check
#
# Output is a file in the current directory called 'symbols.new',
-# stdout holds error messages. Error code indicates success or
-# failure.
+# the value of the awk variable "of" (which can be changed on the
+# command line if required.) stdout holds error messages. Error
+# code indicates success or failure.
#
# NOTE: this is a pure, old fashioned, awk script. It will
# work with any awk
@@ -21,6 +22,7 @@ BEGIN{
mastero = 0 # highest ordinal in master file
symbolo = 0 # highest ordinal in png.h
missing = "error"# log an error on missing symbols
+ of="symbols.new" # default to a fixed name
}
# Read existing definitions from the master file (the first
@@ -151,11 +153,11 @@ END{
# Finally generate symbols.new
if (symbol[o] != "")
- print " " symbol[o], "@" o > "symbols.new"
+ print " " symbol[o], "@" o > of
}
if (err != 0) {
- print "*** A new list is in symbols.new ***"
+ print "*** A new list is in", of, "***"
exit 1
}
}