diff options
Diffstat (limited to 'gcc-4.9/gcc/config/vms/make-crtlmap.awk')
-rw-r--r-- | gcc-4.9/gcc/config/vms/make-crtlmap.awk | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/config/vms/make-crtlmap.awk b/gcc-4.9/gcc/config/vms/make-crtlmap.awk new file mode 100644 index 000000000..79c4b43c8 --- /dev/null +++ b/gcc-4.9/gcc/config/vms/make-crtlmap.awk @@ -0,0 +1,55 @@ +# Generate the VMS crtl map +# Copyright (C) 2011-2014 Free Software Foundation, Inc. + +BEGIN { + is_first = 1; + maxlen=1; + maxlen_name="??" + prev="" + ORS="" +} + +# Remove comment and blank lines. +/^ *#/ || /^ *$/ { + next; +} + +{ + # Handle comma + if (!is_first) + print ",\n" + else + is_first = 0; + + # Check the map is sorted + if ($0 <= prev) + { + print "Map not sorted!! (with name " $0 ")\n" + exit 1 + } + prev = $0 + + # Compute the max of the identifier len. + l=length($1) + if (l > maxlen) + { + maxlen = l + maxlen_name = $1 + } + + print "{ \"" $1 "\", " + if (NF == 1) + print "0 }" + else + { + printf "VMS_CRTL_" $2 + for (i = 3; i <= NF; i++) + printf " | VMS_CRTL_" $i + printf " }" + } +} + +END { + print "\n\n" + print "#define VMS_CRTL_MAXLEN " maxlen " /*" maxlen_name " */\n" +} |