Commit d8055027 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] enable the ikconfig stuff in config

From: Sean Estabrooks <seanlkml@rogers.com>

- fix space at end of line in config files;

- add error check on put_user(); (Daniele Bellucci <bellucda@tiscali.it>)

- add missing Kconfig piece for ikconfig;
parent e89061de
...@@ -120,6 +120,31 @@ config LOG_BUF_SHIFT ...@@ -120,6 +120,31 @@ config LOG_BUF_SHIFT
13 => 8 KB 13 => 8 KB
12 => 4 KB 12 => 4 KB
config IKCONFIG
bool "Kernel .config support"
---help---
This option enables the complete Linux kernel ".config" file
contents, information on compiler used to build the kernel,
kernel running when this kernel was built and kernel version
from Makefile to be saved in kernel. It provides documentation
of which kernel options are used in a running kernel or in an
on-disk kernel. This information can be extracted from the kernel
image file with the script scripts/extract-ikconfig and used as
input to rebuild the current kernel or to build another kernel.
It can also be extracted from a running kernel by reading
/proc/ikconfig/config and /proc/ikconfig/built_with, if enabled.
/proc/ikconfig/config will list the configuration that was used
to build the kernel and /proc/ikconfig/built_with will list
information on the compiler and host machine that was used to
build the kernel.
config IKCONFIG_PROC
bool "Enable access to .config through /proc/ikconfig"
depends on IKCONFIG
---help---
This option enables access to kernel configuration file and build
information through /proc/ikconfig.
menuconfig EMBEDDED menuconfig EMBEDDED
bool "Remove kernel features (for embedded systems)" bool "Remove kernel features (for embedded systems)"
......
...@@ -64,7 +64,8 @@ ikconfig_output_current(struct file *file, char *buf, ...@@ -64,7 +64,8 @@ ikconfig_output_current(struct file *file, char *buf,
limit = (ikconfig_current_size > len) ? len : ikconfig_current_size; limit = (ikconfig_current_size > len) ? len : ikconfig_current_size;
for (i = file->f_pos, cnt = 0; for (i = file->f_pos, cnt = 0;
i < ikconfig_current_size && cnt < limit; i++, cnt++) { i < ikconfig_current_size && cnt < limit; i++, cnt++) {
put_user(ikconfig_config[i], buf + cnt); if (put_user(ikconfig_config[i], buf + cnt))
return -EFAULT;
} }
file->f_pos = i; file->f_pos = i;
return cnt; return cnt;
......
...@@ -76,6 +76,6 @@ echo "#else" ...@@ -76,6 +76,6 @@ echo "#else"
echo "static char *ikconfig_config __initdata __attribute__((unused)) = " echo "static char *ikconfig_config __initdata __attribute__((unused)) = "
echo "#endif" echo "#endif"
echo "\"CONFIG_BEGIN=n\\n\\" echo "\"CONFIG_BEGIN=n\\n\\"
echo "`cat $config | sed 's/\"/\\\\\"/g' | grep "^#\? \?CONFIG_" | awk '{ print $0, "\\\\n\\\\" }' `" echo "`cat $config | sed 's/\"/\\\\\"/g' | grep "^#\? \?CONFIG_" | awk '{ print $0 "\\\\n\\\\" }' `"
echo "CONFIG_END=n\";" echo "CONFIG_END=n\\n\";"
echo "#endif /* _IKCONFIG_H */" echo "#endif /* _IKCONFIG_H */"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment