每次在进行裁剪的Linux kernel编译时,都会碰到有提示,让你在某些编译选项多选一,如:
Initialize kernel stack variables at function entry
1. no automatic initialization (weakest) (INIT_STACK_NONE)
2. zero-init structs marked for userspace (weak) (GCC_PLUGIN_STRUCTLEAK_USER) (NEW)
3. zero-init structs passed by reference (strong) (GCC_PLUGIN_STRUCTLEAK_BYREF) (NEW)
4. zero-init anything passed by reference (very strong) (GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) (NEW)
choice[1-4?]:
如果每次都需要手动输入1-4之间的某个值,会很浪费时间。有没有办法把选择写死到kernel的.config文件里呢?比方说如果我选3,那么加入如下语句:
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
但是它还是会照样提示你做出选择。
关于这个问题我问了chatGPT(集成在Bing上的GPT-4),过程如下:
一直冻在那里,不能给出任何答案。
在google上搜索,至少前几页是没有相关内容的。
后来我自己试了下,把每个选项都写进.config文件里,没选上的赋值为n。即:
CONFIG_INIT_STACK_NONE=n
CONFIG_GCC_PLUGIN_STRUCTLEAK_USER=n
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=n
再次编译,相关提示再也不见了。
这个问题就这么简单地解决了。可见即使是GPT-4也只能是搜索和拼凑答案,无法像聪明人那样去创造答案。我的饭碗暂时保住了。