最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【未解决】如何向crosstool-ng中添加并应用某patch

crosstool-ng crifan 2691浏览 0评论

【背景】

折腾:

【已解决】cygwin中编译crosstool-ng在eglibc 2.17中的rpc_parse.c出错:rpc/types.h:73:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘u_char’

期间,通过手动的创建:

E:\dev_install_root\cygwin\home\develop\crosstool-ng\crosstool-ng-1.18.0\patches\eglibc\2_17\001-osx_do_not_redefine_types_sunrpc.patch

然后去运行,结果log中显示已经:

[EXTRA]    Extracting 'eglibc-2_17'
[EXTRA]    Patching 'eglibc-2_17'

 

但是最终还是没有生效,对应的:

E:\dev_install_root\cygwin\home\develop\crosstool-ng\crosstool-ng-1.18.0_build\.build\src\eglibc-2_17\sunrpc\rpc\types.h

还是没有变化。

搞得没有完全搞懂crosstool-ng中,是如何添加patch的。

【折腾过程】

1.参考:

Re: ct-ng: patch howto?

发现作者的解释也就只是:

rm -rf .build/src/binutils-2.21
rm -f .build/src/.binutils-2.21{.extracted,patched}

而这样的作法,我之前也做过了:

手动删除:

E:\dev_install_root\cygwin\home\develop\crosstool-ng\crosstool-ng-1.18.0_build\.build\src\eglibc-2_17

手动删除:

E:\dev_install_root\cygwin\home\develop\crosstool-ng\crosstool-ng-1.18.0_build\.build\src\.eglibc-2_17.patched

E:\dev_install_root\cygwin\home\develop\crosstool-ng\crosstool-ng-1.18.0_build\.build\src\.eglibc-2_17.extracted

结果还是不行的。

2.后来看到,帖子中,和之前就注意到的,eglibc中其他版本的patch

名字是:

100-xxx.patch

所以,猜测:

难道是我当前的patch文件:

E:\dev_install_root\cygwin\home\develop\crosstool-ng\crosstool-ng-1.18.0\patches\eglibc\2_17\001-osx_do_not_redefine_types_sunrpc.patch

的文件名:

001-osx_do_not_redefine_types_sunrpc.patch

有误,应该写成:

100-osx_do_not_redefine_types_sunrpc.patch

然后才真正能生效???

暂时不清楚,有待后续有空再去验证此猜测。

3.另外,对于patch文件名的命名的通俗做法,好像都是:

001-xxx.patch

以及:

100-xxx.patch

200-xxx.patch

之类的

以及:

Add a new patch to make glibc build with latest (4.3.x) gcc.

中的

180-glibc-2.7-build_wcs_upper_buffer.patch

190-glibc-2.7-build_wcs_upper_buffer.patch

190-use_short_for_fnstsw.patch

200-use_short_for_fnstsw.patch

210-gcc-4.3_sysinclude_path.patch

但是,不知道,为何是100开始的,以及什么时候从001开始。

即:

patch文件的命名规范,到底是什么?

4.另外,对于patch中的内容,都是符合可以使用

patch –p1 xxx.patch

的形式的:

比如我此处的:

001-osx_do_not_redefine_types_sunrpc.patch

中的:

diff -Naur eglibc-2_17-old/sunrpc/rpc/types.h eglibc-2_17-new/sunrpc/rpc/types.h
--- eglibc-2_17-old/sunrpc/rpc/types.h	2010-08-19 23:32:31.000000000 +0300
+++ eglibc-2_17-new/sunrpc/rpc/types.h	2013-03-26 01:16:16.000000000 +0200

所以,此处,确保patch文件内容是正确的。

但是为何不生效,还是不知道。

 

【总结】

转载请注明:在路上 » 【未解决】如何向crosstool-ng中添加并应用某patch

与本文相关的文章

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.172 seconds, using 22.43MB memory