aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/config/vms/make-crtlmap.awk
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/config/vms/make-crtlmap.awk')
-rw-r--r--gcc-4.9/gcc/config/vms/make-crtlmap.awk55
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"
+}