warning: override: reassigning to symbol 问题解决

一 问题

在给OrangePI PC配置内核时,出现warning: override: reassigning to symbol的问题(使用的配置文件是官方提供的文件sun8iw7p1_mainline_defconfig)
在这里插入图片描述
warning字面意思是“覆盖:重新分配给符号XXX”

使用的配置命令是
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun8iw7p1_mainline_defconfig

虽然也生成了.config文件,但是这么多warning看上去很不爽,也不知道会不会对编译内核产生影响,于是就研究了下并发现了问题所在。

二 解决

根据warning信息,配置文件的第50行有问题,cd到arch/arm/configs/下,vim打开sun8iw7p1_mainline_defconfig,并跳转到第50行,
在这里插入图片描述
乍一看似乎看不出什么毛病,只是感觉第49行的注释跟第50行有点矛盾,一个说没设置,一个说设置了。继续看其它有warning的行,发现情形类似,
在这里插入图片描述
于是把这个有矛盾的注释删掉,再次配置,发现就没有warning了。估计是配置命令解析这个注释时发现跟相邻行有矛盾,就提示warning了,最后还是会按照XXX=y来配置。
下面是个简单处理脚本,放在arch/arm/configs下运行

import re
import os

line_match = re.compile(r'#\s+(CONFIG_.+) is not set')

srcFile = 'sun8iw7p1_mainline_defconfig'
dstFile = 'sun8iw7p1_mainline_defconfig_new'

with open(srcFile, 'r') as SRC_FD:
    with open(dstFile, 'w') as DST_FD: 
        for oneline in SRC_FD:

        	obj = line_match.match(oneline)
        	if obj:
        		pass
        	else:
        		DST_FD.write(oneline)

os.rename(srcFile, 'sun8iw7p1_mainline_defconfig_old')
os.rename(dstFile, 'sun8iw7p1_mainline_defconfig')

这样,再次执行以下命令就可以正确配置,
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun8iw7p1_mainline_defconfig

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据你提供的输出,这是在构建 Buildroot 时遇到的一些警告和错误。 首先,警告显示 `/home/clzdh/Desktop/rk3399_linux_release_v2.5.1_20210301/buildroot/output/rockchip_rk3399/.rockchipconfig` 文件中的第 339 行出现了一个警告,指示重新分配了符号 `BR2_PACKAGE_NTFS_3G`。这可能意味着在配置文件中对该符号进行了重复赋值。 然后,输出显示配置已写入 `/home/clzdh/Desktop/rk3399_linux_release_v2.5.1_20210301/buildroot/output/rockchip_rk3399/.config` 文件。 接下来,输出显示离开了 `/home/clzdh/Desktop/rk3399_linux_release_v2.5.1_20210301/buildroot` 目录。 然后,输出显示需要安装 `unbuffer` 工具。它建议你从 `expect` 或 `expect-dev` 包中安装 `unbuffer`。 然后,输出显示日志保存在 `/home/clzdh/Desktop/rk3399_linux_release_v2.5.1_20210301/br.log` 文件中。 最后,输出显示尝试读取 `/home/clzdh/Desktop/rk3399_linux_release_v2.5.1_20210301/br.log` 文件时出现错误,表示该文件不存在。 根据上述警告和错误,你可以尝试做以下几件事情: 1. 检查配置文件中是否对 `BR2_PACKAGE_NTFS_3G` 进行了重复赋值。打开 `/home/clzdh/Desktop/rk3399_linux_release_v2.5.1_20210301/buildroot/output/rockchip_rk3399/.rockchipconfig` 文件,并检查第 339 行的设置。 2. 检查是否已经安装了 `expect` 或 `expect-dev` 包。你可以使用合适的软件包管理器来安装它们。例如,在 Ubuntu 或基于 Debian 的系统上,你可以使用以下命令: ``` sudo apt-get install expect ``` 3. 检查构建日志是否存在。确认 `/home/clzdh/Desktop/rk3399_linux_release_v2.5.1_20210301/br.log` 文件是否存在,如果不存在,可能是由于构建过程中出现问题导致的。 如果问题仍然存在,请提供更多的上下文或详细描述你的构建环境和步骤,以便我们能够更好地帮助你解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值