在Linux下的/ usr/include目录下,我输入了命令:find -type f -name unistd.h,它给出了以下输出:
./unistd.h ./linux/unistd.h ./asm-generic/unistd.h ./bits/unistd.h ./asm/unistd.h ./sys/unistd.h
我的问题是,每个unistd.h的目的是什么,因为单个unix规范中只有一个该文件的定义?
提前致谢.
当在两个相对较远的提交之间平分Linux内核源代码树时,前几个二分法步骤通常会改变很多内核源代码,因此无论是否make distclean运行,都不会产生很大的影响.但是,随着二分范围越来越窄,每一步都会更改更少的源文件,因此清理源树将删除大量
*.o不需要重建的文件.
由于make通过比较它们的最后修改时间与其关联源文件的修改时间来推断需要重建的目标文件,我认为在每个二分步骤之后没有必要清理树,但我仍然这样做作为预防措施之后的预防措施.我遇到了这样一种情况,即一个漫长的二分过程最终让我陷入了一个与所讨论的bug无关的"坏"提交.
为了使它具体化,这里是我在第一次二分尝试中使用的步骤(这使我进入了错误的提交):
cp /boot/config-`uname -r` .config
make oldconfig
make && sudo make modules_install && sudo make install
# reboot
# Then I repeat the following steps until the bisection ends.
# test the kernel
git bisect {good,bad}
make && sudo make modules_install && sudo make install
# reboot
Run Code Online (Sandbox Code Playgroud)
我使用以下过程再次分成两次,并且能够成功地达到错误提交:
make distclean
cp /boot/config-`uname -r` .config
make oldconfig
make && sudo make modules_install && sudo make install
# reboot
# test the kernel …Run Code Online (Sandbox Code Playgroud)