![LFS 问题 - 应用第 5.7.1 节中的补丁](https://linux22.com/image/75842/LFS%20%E9%97%AE%E9%A2%98%20-%20%E5%BA%94%E7%94%A8%E7%AC%AC%205.7.1%20%E8%8A%82%E4%B8%AD%E7%9A%84%E8%A1%A5%E4%B8%81.png)
如果之前已经问过这个问题,并且这个问题是否非常明显,请提前道歉。此时我正在严格按照指南开始操作。有问题的页面是这样的:
http://linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html
这一点指定运行这个:
patch -Np1 -i ../glibc-2.22-upstream_i386_fix-1.patch
然而,这样做似乎会返回这个:
lfs@linux-NVIDIA-nForce-590-SLI /mnt/lfs/tools $ patch -Np1 -i ../glibc-2.22-upstream_i386_fix-1.patch
can't find file to patch at input line 20
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Submitted By: Bruce Dubbs <bdubbs at linuxfromscratch dot org>
|Date: 2015-08-23
|Initial Package Version: 2.22
|Upstream Status: In repository
|Origin: https://github.molgen.mpg.de/git-mirror/glibc
|Description: This patch fixes a build problem on 32-bit systems.
|
|commit a08e80d1143f6b0386d5bc8cc7b8ed576091dbf3
|Author: Andrew Senkevich <[email protected]>
|Date: Wed Aug 19 16:54:28 2015 +0300
|
| [BZ #18796]
| * scripts/test-installation.pl: Don't add -lmvec to build options if
| libmvec wasn't built.
|
|diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
|index cac1562..79b2b3e 100755
|--- a/scripts/test-installation.pl
|+++ b/scripts/test-installation.pl
--------------------------
File to patch:
因此,对于初学者来说,对于那些之前遵循过该指南的人来说,补丁与其要修补的文件的关系到底应该在哪里?根据我的阅读,它似乎可以在任何地方,但预计位于 /mnt/lfs/sources 目录中。它具体修补什么文件?运行这个命令时我应该在哪个目录中?
作为参考,我已按照指南中的要求创建了目录 /mnt/lfs /mnt/lfs/sources /mnt/lfs/tools,并从 /mnt/lfs/tools 运行命令,但我不确定在哪里我应该是这样,我可以用 ../ 引用有问题的文件。
目前补丁位于 /mnt/lfs/sources 中,glibc-2.22 的提取文件位于 /mnt/lfs/tools 中
lfs@linux-NVIDIA-nForce-590-SLI /mnt/lfs $ ls -lah /mnt/lfs/sources/glibc-2.22-upstream_i368_fix-1.patch
-rw-r--r-- 1 linux linux 1.9K Sep 30 20:23 /mnt/lfs/sources/glibc-2.22-upstream_i368_fix-1.patch
lfs@linux-NVIDIA-nForce-590-SLI /mnt/lfs $ ls -lah /mnt/lfs/tools/glibc-2.22 -ddrwxr-xr-x 68 lfs lfs 4.0K Aug 5 01:42 /mnt/lfs/tools/glibc-2.22
如果我遗漏了任何内容,请告诉我,我只是在用头撞墙,试图理解这个补丁点以及如何让它做它应该做的事情。
答案1
您必须位于提取的 glibc-2.22 目录中(因此..
在补丁路径中,它假设补丁位于上层目录中,在您的情况下为$LFS
)。
您应该在$LFS/source
目录中提取并构建,但这$LFS/tools
并不是为了这个目的(它是为了保存临时系统)。
你真的需要仔细阅读第5.3章。
答案2
需要先解压glibc tarball,这里省略了。
tar -xf glibc-2.22.tar.xz
cd glibc-2.22
patch -Np1 -i ../glibc-2.22-upstream_i386_fix-1.patch
祝你好运 :)