On 28-Oct-2009, Ben Finney wrote:
> The symbols *do* appear in the kernel symbol table, but they are named
> with a leading period (I don't know why), so the following regex
> succeeds in matching the symbols:
> 
> =====
> $ needed_symbols='sys_inotify_init sys_signalfd'
> $ for symbol in $needed_symbols; do egrep "^[a-fA-F0-9]+ T \.${symbol}$" 
> /proc/kallsyms; done
> c000000000170e00 T .sys_inotify_init
> c000000000172e84 T .sys_signalfd
> $
> =====
> 
> I would submit a patch for the ‘preinst’ script, but presumably
> changing the regex this way would cause it to fail on other machines.

For the record, I have succeeded in installing and running a modified
version of ‘udev’ that detects the kernel symbols on my machine. The
patch is:

=== modified file 'debian/changelog'
--- debian/changelog    2009-10-29 04:17:52 +0000
+++ debian/changelog    2009-10-29 04:23:11 +0000
@@ -1,3 +1,9 @@
+udev (146-5+whitetree1) unstable; urgency=low
+
+  * Match kernel symbols per this machine.
+
+ -- Ben Finney <[email protected]>  Thu, 29 Oct 2009 15:22:24 +1100
+
 udev (146-5) unstable; urgency=medium
 
   * Abort upgrades in preinst instead of postinst if the kernel lacks

=== modified file 'debian/udev.preinst'
--- debian/udev.preinst 2009-10-29 04:17:52 +0000
+++ debian/udev.preinst 2009-10-29 04:20:13 +0000
@@ -94,7 +94,7 @@
   local needed_symbols='sys_inotify_init sys_signalfd'
   local missing_symbol=0
   for symbol in $needed_symbols; do
-    if ! egrep -q "^[a-fA-F0-9]+ T ${symbol}$" /proc/kallsyms; then
+    if ! egrep -q "^[a-fA-F0-9]+ T \.${symbol}$" /proc/kallsyms; then
       missing_symbol=1
       break
     fi


-- 
 \     “This world in arms is not spending money alone. It is spending |
  `\      the sweat of its laborers, the genius of its scientists, the |
_o__)           hopes of its children.” —Dwight Eisenhower, 1953-04-16 |
Ben Finney <[email protected]>

Attachment: signature.asc
Description: Digital signature

Reply via email to