01、编译选项和内核编译
Linux内核(英语:linux kernel),是一种计算机操作系统内核,已C语言和汇编语言写成,匹配POSIX标准,以GNU通用公共许可证发布。从技术上说Linux只是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件控制、多任务等功能的系统软件。
所以首先我们都知道,Linux内核如果用O0编译,是无法编译过的,Linux的内核编译,要么是O2,要么是Os,这点从Linux的Makefile里面可以看出:
当选择了
CONFIG_CC_OPTIMIZE_FOR_SIZE
它会是Os,否则就是O2。
其实O2和Os,都是一些优化选项的集合:
gcc -c -Q -O2 --help=optimizers > /tmp/O2-optsgcc -c -Q -Os --help=optimizers > /tmp/Os-opts
评论列表()