【背景】
折腾:
期间,通过手动的创建:
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.参考:
发现作者的解释也就只是:
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-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