• 首页
  • 狐文
  • 狐图
  • About
狐窝
OvO
  1. 首页
  2. 未分类
  3. 正文

OpenWrt之quilt打补丁

2020年09月11日 37点热度 0人点赞 0条评论

 

2019-11 from--https://blog.csdn.net/hzlarm/article/details/103264754

OpenWrt使用的是quilt工具来制作补丁非传统的diff

diff和quilt使用方法参考博客

官方quilt文档

准备工作

cat > ~/.quiltrc <<EOF
QUILT_DIFF_ARGS="--no-timestamps --no-index -p ab --color=auto"
QUILT_REFRESH_ARGS="--no-timestamps --no-index -p ab"
QUILT_SERIES_ARGS="--color=auto"
QUILT_PATCH_OPTS="--unified"
QUILT_DIFF_OPTS="-p"
EDITOR="vim"
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
给gdb打补丁修复Remote ‘g’ packet reply is too long

准备gdb源码以及patch文件

make toolchain/gdb/{clean,prepare} V=s QUILT=1

进入到gdb源码目录

cd build_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/gdb-linaro-7.6-2013.05/

打上原来的所有补丁

quilt push -a

创建新的patch

quilt new 700-fix-remote-g-packet-reply-too-long.patch

修改源文件

quilt edit gdb/remote.c

--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -6110,8 +6110,19 @@ process_g_packet (struct regcache *regca
   buf_len = strlen (rs->buf);
 
   /* Further sanity checks, with knowledge of the architecture.  */
-  if (buf_len > 2 * rsa->sizeof_g_packet)
-    error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
+  // if (buf_len > 2 * rsa->sizeof_g_packet)
+  //  error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
+  if (buf_len > 2 * rsa->sizeof_g_packet) {
+    rsa->sizeof_g_packet = buf_len;
+    for (i = 0; i < gdbarch_num_regs (gdbarch); i++) {
+      if (rsa->regs[i].pnum == -1)
+        continue;
+      if (rsa->regs[i].offset >= rsa->sizeof_g_packet)
+        rsa->regs[i].in_g_packet = 0;
+      else
+        rsa->regs[i].in_g_packet = 1;
+    }
+  }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

查看修改前后对比

quilt diff

更新修改到patch文件

quilt refresh

返回buildroot目录

cd -

打上新的补丁

make toolchain/gdb/update V=s

重新编译

make toolchain/gdb/{clean,compile,install} V=s

cat ./scripts/remote-gdb

 

标签: diff no quilt
最后更新:2020年09月11日

OvO

狐狸

点赞
< 上一篇
下一篇 >
最新 热点 随机
最新 热点 随机
钛备份或小米系统备份功能备份出来的APK无法正常还原 BBR安装启用 安装docker mitmproxy 调试方法 Android SDK 版本选择 Perdition Mail代理服务器配置 HAProxy SSL代理 Openssl 中间人SSL代理 Stunnel SSL to SSL代理 NGINX反代IMAP配置 各种设备User Agent Torrent下载工具推荐 用 rar2john+hashcat 破解 RAR 文件密码 2020最好的Linux发行版 关闭新版chrome工具栏上拼图图标 Office 下载、安装、激活,有它就够了! Android 非官方的发行版 openwrt添加autoconf-archive
MyBatis批量插入数据 开源中最好的Web开发的资源 OpenWrt 内网下发 IPv6 在 Win10 上安装重复数据删除 推荐 15 款很棒的文本编辑器 编译报错warning: argument to ‘sizeof’ in ‘strncpy’ call is the same expression as the source; 爬虫实例——通过JS控制滚动条 拦截Http请求/Jquery【Ajax】 Sqlite大批量导入数据提高效率的几种方式 安卓获取正在运行的包以及包路径 让 Python 更加充分的使用 Sqlite3 6个网盘中转站 JDBC连接数据库使用SERVICE NAME、SID以及TNSName不同写法 Linux下弹出U盘的代码 WebDriver中页面滚动(scrolling) MySQL修改root密码的多种方法 附加到SQL2012的数据库就不能再附加到低于SQL2012的数据库版本 Chrome下自签名证书提示无效的问题
标签聚合
git docker yum e 安装 chrome 网卡 ssl 路由 镜像 blog 密码 https chromium linux 下载

COPYRIGHT © 2020 狐窝. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS