Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: ldd and LD_DEBUG completions



Attached are completions for ldd and the LD_DEBUG environment variable.
The use of the Unix/Type directory for the latter is perhaps
questionable but is probably the best choice. These are based on Linux
and Solaris. I would have checked BSD but the sourceforge compile farm
has gone.

The zsh libraries are not especially cleanly linked by the way. Run ldd
-ur (preferably on Solaris) on them to see what I mean.

Oliver

Index: Completion/Unix/Command/_ldd
===================================================================
RCS file: Completion/Unix/Command/_ldd
diff -N Completion/Unix/Command/_ldd
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Completion/Unix/Command/_ldd	28 Jun 2007 16:11:00 -0000
@@ -0,0 +1,32 @@
+#compdef ldd
+
+if _pick_variant gnu=GNU solaris --version; then
+  args=(
+    '(- *)--version[display version information]'
+    '(- *)--help[display help information]'
+    '(-v --verbose)'{-v,--verbose}'[include symbol versioning information]'
+    '(-d --data-relocs)'{-d,--data-relocs}'[perform data relocations and report missing objects]'
+    '(-f --function-relocs)'{-f,--function-relocs}'[perform data/function relocations and report missing objects]'
+    '(-u --unused)'{-u,--unused}'[display any unused objects]'
+  )
+else
+  args=(
+    -s
+    '(-r)-d[check immediate references]'
+    '(-d)-r[check immediate and lazy references]'
+    '-u[display any unused objects]'
+    '-U[display any unreferenced, or unused dependencies]'
+    '-e[set specified environment variable]:environment variable:(LD_PRELOAD LD_LIBRARY_PATH LD_RUN_PATH LD_DEBUG LD_DEBUG_OUTPUT LD_NOCONFIG LD_NOAUXFLTR)'
+    '-f[check for insecure executable]'
+    '-i[display order of execution of initialization sections]'
+    '-L[enable lazy loading]'
+    '-l[force immediate processing of any filters]'
+    '-s[display search path used]'
+    '-v[displays all dependency relationships]'
+  )
+fi
+
+_arguments $args \
+  '*: : _alternative
+    "executables:executable:_files -g \^\*.so\(\*\)"
+      "shared-objects:shared object:_files -g \*.so"'
Index: Completion/Unix/Type/_ld_debug
===================================================================
RCS file: Completion/Unix/Type/_ld_debug
diff -N Completion/Unix/Type/_ld_debug
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Completion/Unix/Type/_ld_debug	28 Jun 2007 16:11:00 -0000
@@ -0,0 +1,39 @@
+#compdef -value-,LD_DEBUG,-default-
+
+local vals
+
+vals=(
+  'libs[display library search paths]'
+  'files[show processing of files and libraries]'
+  'bindings[display symbol binding]'
+  'reloc[display relocation processing]'
+  'symbols[display symbol table processing]'
+  'unused[show unused files]'
+  'versions[show version processing]'
+  'help[display help message]'
+)
+
+case $OSTYPE in
+  solaris*)
+    vals+=(
+      'basic[provide basic trace information/warnings]'
+      'cap[display hardware/software capability processing]'
+      'detail[provide more info in conjunction with other options]'
+      'demangle[display C++ symbol names in their demangled form]'
+      'init[display init and fini processing]'
+      'long[display long object names without truncation]'
+      'move[display move section processing]'
+      'segments[display available output segments and address/offset processing]'
+      'strtab[display information about string table compression]'
+      'tls[display TLS processing info]'
+    )
+  ;;
+  linux*)
+    vals+=(
+      'all[combine all options]'
+      'statistics[display relocation statistics]'
+    )
+  ;;
+esac
+_values -s , capability $vals
+  



Messages sorted by: Reverse Date, Date, Thread, Author