diff options
| author | Andrew Morton <akpm@osdl.org> | 2003-08-18 18:33:10 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2003-08-18 18:33:10 -0700 |
| commit | d8055027615aaa13ae763adabbac2199e1d822e7 (patch) | |
| tree | 73a7bafbc69077d5e19c92255dabf435870b767a | |
| parent | e89061de1611bc5f3bb69983c94106dcc48bb40b (diff) | |
[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;
| -rw-r--r-- | init/Kconfig | 25 | ||||
| -rw-r--r-- | kernel/configs.c | 3 | ||||
| -rw-r--r-- | scripts/mkconfigs | 4 |
3 files changed, 29 insertions, 3 deletions
diff --git a/init/Kconfig b/init/Kconfig index 5c012aeb2a8f..b01e44f573eb 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -120,6 +120,31 @@ config LOG_BUF_SHIFT 13 => 8 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 bool "Remove kernel features (for embedded systems)" diff --git a/kernel/configs.c b/kernel/configs.c index 470986f8ea1b..dd7acd64b214 100644 --- a/kernel/configs.c +++ b/kernel/configs.c @@ -64,7 +64,8 @@ ikconfig_output_current(struct file *file, char *buf, limit = (ikconfig_current_size > len) ? len : ikconfig_current_size; for (i = file->f_pos, cnt = 0; 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; return cnt; diff --git a/scripts/mkconfigs b/scripts/mkconfigs index 1a926178a744..7d5a6c214f1e 100644 --- a/scripts/mkconfigs +++ b/scripts/mkconfigs @@ -76,6 +76,6 @@ echo "#else" echo "static char *ikconfig_config __initdata __attribute__((unused)) = " echo "#endif" echo "\"CONFIG_BEGIN=n\\n\\" -echo "`cat $config | sed 's/\"/\\\\\"/g' | grep "^#\? \?CONFIG_" | awk '{ print $0, "\\\\n\\\\" }' `" -echo "CONFIG_END=n\";" +echo "`cat $config | sed 's/\"/\\\\\"/g' | grep "^#\? \?CONFIG_" | awk '{ print $0 "\\\\n\\\\" }' `" +echo "CONFIG_END=n\\n\";" echo "#endif /* _IKCONFIG_H */" |
