glibc社区提问

一、背景

glibc的社区是一个历史悠久的社区,glibc的代码很多模块也都已经很久不更新了,不少模块在一些场景下表现得也是有一些小的性能问题,虽然说实现本身并没有什么不对,但是在一些高实时要求的场景下却可能表现得不太理想。比如之前博客讲到的cv.notify_one耗时久的问题,将来的博客会讲到的读写锁死循环问题。

虽然向社区提问得到回答会比较慢,甚至得不到回答,但是知道如何向社区提问总比不知道如何向社区提问要强。

二、glibc的相关链接

2.1 glibc的patchwork的总链接

glibc的patchwork的总链接:

https://patchwork.sourceware.org/

2.2 glibc的git相关信息总链接

glibc的所有链接的总入口链接:

https://sourceware.org/glibc/wiki/MAINTAINERS

上面这个链接也是在glibc仓库里的MAINTAINERS文件里写的:

glibc的git相关信息的总链接如下:

https://sourceware.org/git/?p=glibc.git

下载glibc的git仓库:

bash 复制代码
git clone git://sourceware.org/git/glibc.git

下载glibc的git仓库虽然没有下载内核仓库那么耗时,但是还是挺耗时的。

3.3 补丁相关链接

提交补丁的checklist链接:

https://sourceware.org/glibc/wiki/Contribution%20checklist

历史补丁的列表总链接:

https://patchwork.sourceware.org/project/glibc/list/

条件搜索历史补丁,点击上面链接进去后的下图里的红色链接部分:

我们随便点一个补丁进去:

然后点下图里的红色框的链接:

然后就看到了内核的补丁的https://lore.kernel.org/的链接相类似的界面了:

我们把后面的与补丁详细信息的内容剔除,得到总链接:

https://inbox.sourceware.org/libc-alpha/

3.4 bug相关链接

提交bug前的流程介绍链接:

https://sourceware.org/glibc/wiki/Bugzilla%20Procedures

提交bug的入口链接及账号登录链接:

https://sourceware.org/bugzilla/

三、提问及创建bug账号

3.1 针对一个patch进行提问

提问需要基于一个具体的patch,比如,我们要搜索pthread_rwlock_common.c里的666行到669行的改动:

cd到nptl目录后,执行下面的脚本:

bash 复制代码
git log -L 663,666:pthread_rwlock_common.c

搜到如下的commit:

我们在总链接里搜索这个标题(别搜索commit,搜commit可能搜不准确),搜到如下内容:

上图里的第一封邮件就是我的提问,只是暂时并没有人回答。

提问需要使用git send-email工具,相关的步骤见之前的博客 向内核社区提交补丁 里的 git send-email相关的章节。

我的这封回复是用下图里的git send-email的命令来回复指定的邮件:

内容格式参考现有的回复的格式即可。

3.2 如何创建一个账号

新增bug需要一个账号:

点击上图里的红色框出的链接后,提示说如果要新建账号,需要发送邮件:

https://sourceware.org/bugzilla/createaccount.cgi

如下图,发送了邮件给到指定邮箱:

也确实收到了邮件回复,创建好了账号:

按照邮件提示,点击忘记密码后,按照步骤进行操作:

然后就成功登录了:

3.3 新建一个bug

我们新建一个bug:点击上图里的上方的new,弹出下面的界面:

点击glibc,出现下面界面:

虽然,我也看了我们的问题的相关源码在最新版本上仍然是一样的处理。但是还是按照当前的版本使用情况来填相关信息:

可以看到,这个系统还是能关联性的找到一些相关bug,有一个bug确实和我们描述的问题一致:

我点击了Add Me to the CC List的按钮,追踪该问题:

就是这个31477这个bug,打开相关链接:

https://sourceware.org/bugzilla/show_bug.cgi?id=31477

创建出来的bug:

可以看到我新增的这个bug:

https://sourceware.org/bugzilla/show_bug.cgi?id=33757

相关推荐
Harvy_没救了41 分钟前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信1 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
嵌入式×边缘AI:打怪升级日志1 小时前
100ASK-T113 Pro 开发板 Bootloader 完全开发指南
linux·ubuntu·bootloader
lzhdim1 小时前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
2401_873479402 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩2 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
charlie1145141912 小时前
Linux 字符设备驱动:cdev、设备号与设备模型
linux·开发语言·驱动开发·c
handler012 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
zhouwy1132 小时前
Linux进程与线程编程详解
linux·c++
我星期八休息3 小时前
IT疑难杂症诊疗室:AI时代工程师Superpowers进化论
linux·开发语言·数据结构·人工智能·python·散列表