Author: glen
Date: Sun Jan 23 20:47:17 2011
New Revision: 12078

Modified:
   geninitrd/trunk/geninitrd
Log:
use copy of extract-ikconfig from kernel sources what can process any file
containing it (vmlinux or kernel mod with or without compressions)



Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd   (original)
+++ geninitrd/trunk/geninitrd   Sun Jan 23 20:47:17 2011
@@ -275,39 +275,16 @@
        fi
 }
 
-# extract-ikconfig - Extract the .config file from a kernel image
-#
-# The obscure use of the "tr" filter is to work around older versions of
-# "grep" that report the byte offset of the line instead of the pattern.
-#
-# (c) 2009, Dick Streefland <[email protected]>
-# Licensed under the terms of the GNU General Public License.
-#
-# Ripped and adjusted for geninitrd from linux-2.6.34/scripts/extract-ikconfig
-extract-ikconfig() {
+# Extract the .config file from a kernel image
+# uses extract-ikconfig from kernel sources (scripts/extract-ikconfig)
+ikconfig() {
        local kofile=$(modinfo -k $kernel -n configs 2> /dev/null)
-       if [ -z "$kofile" ]; then
-               return
-       fi
-       local img=$(mktemp)
-       case "$kofile" in
-       *.gz)
-               gzip -dc "$kofile" > $img
-               ;;
-       *)
-               cat "$kofile" > $img
-               ;;
-       esac
-
-       local cf1='IKCFG_ST\037\213\010'
-       local cf2='0123456789'
-       local pos
-
-       if pos=$(tr "$cf1\n$cf2" "\n$cf2=" < "$img" | grep -abo "^$cf2"); then
-               pos=${pos%%:*}
-               tail -c+$(($pos+8)) "$img" | gzip -dcq
+       if [ -n "$kofile" ]; then
+               /lib/geninitrd/extract-ikconfig $kofile
+       else
+               # try vmlinuz itself
+               /lib/geninitrd/extract-ikconfig /boot/vmlinuz-$kernel
        fi
-       rm -f $img
 }
 
 # Finds module dependencies
@@ -1395,7 +1372,7 @@
        die "Filesystem $INITRDFS not supported by $PROGRAM"
 esac
 
-CONFIG_BLK_DEV_RAM_SIZE=$(extract-ikconfig | awk -F= 
'/^CONFIG_BLK_DEV_RAM_SIZE/{print $2}')
+CONFIG_BLK_DEV_RAM_SIZE=$(ikconfig | awk -F= '/^CONFIG_BLK_DEV_RAM_SIZE/{print 
$2}')
 if [ -z "$CONFIG_BLK_DEV_RAM_SIZE" ]; then
        CONFIG_BLK_DEV_RAM_SIZE=4096
 fi
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to