summaryrefslogtreecommitdiff
path: root/ext/aix_mksym.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/aix_mksym.rb')
-rw-r--r--ext/aix_mksym.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/aix_mksym.rb b/ext/aix_mksym.rb
new file mode 100644
index 0000000000..ae7cf4e5d1
--- /dev/null
+++ b/ext/aix_mksym.rb
@@ -0,0 +1,35 @@
+
+def uniq(data)
+ last=nil
+ data.delete_if do |name|
+ if last == name
+ TRUE
+ else
+ last = name
+ FALSE
+ end
+ end
+end
+
+def extract(nm, out)
+ data = nm.readlines.collect{|line|
+ line = line.split
+ case line[1]
+ when "B", "D"
+ line[0]
+ else
+ next
+ end
+ }.compact!.sort!
+ uniq(data)
+ exp = open(out, "w")
+ exp.printf "#!\n"
+ for line in data
+ exp.printf "%s\n", line
+ end
+ exp.close
+ nm.close
+end
+if older("../ruby.imp", "../miniruby")
+ extract(open("|/usr/ccs/bin/nm -p ../*.o"), "../ruby.imp")
+end