OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5410|回复: 3

编译ko模块一直无法使用__DATE__和__TIME__

[复制链接]

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2014-8-24
在线时间
146 小时
发表于 2020-12-14 11:20:57 | 显示全部楼层 |阅读模式
5金钱
请教一下各位有没有遇到这个问题。就是在编译ko的时候,我想把 __DATE__ 和 __TIME__打印出来,但是一直报错。
显示这个
error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]


查了一下,是因为gcc 4.9 之后添加了-Werror=date-time,不能在代码中使用__DATE____TIME__,否则会出现错误(gcc说法是会导致编译的不确定性),如果一定要用,则在编译时添加-Wno-error=date-time,但依然会有警告打印。


但是我这个 -Werror=date-time 应该添加在哪里呢?

我放在ko的makefile里发现并没有效果,我加在kernel的makefile里,太长了感觉又不知道加在哪。

请教各位!

最佳答案

查看完整内容[请看2#楼]

你可以在make时加上CFLAGS参数,语法如下: ir-out 是笔者的ko模块名字,要注意替换一下。 PS: -Werror=date-time是内核编译选项故意添加的,你可以搜索一下内核顶层Makefile,大概如下: 你把这行注释掉,再编译就不会报错了,连警告都不会有。 内核源码禁止使用__DATE__/__TIME__的初衷是为了保证内核镜像的可重现性,即给定源码和config选项,在任何时候编译出来的二进制镜像都应该是完全一致的。 编译器提供的__D ...
找一份喜欢的工作,这样每天工作的8个小时是快乐的。 找一个喜欢的人,这样每天工作之外的16个小时也是快乐的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2020-12-14 11:20:58 | 显示全部楼层
本帖最后由 xkwy 于 2020-12-15 17:13 编辑

你可以在make时加上CFLAGS参数,语法如下:
  1. make CFLAGS_ir-out.o=-Wno-error=date-time
复制代码
ir-out 是笔者的ko模块名字,要注意替换一下。

PS:

-Werror=date-time是内核编译选项故意添加的,你可以搜索一下内核顶层Makefile,大概如下:
  1. # Prohibit date/time macros, which would make the build non-deterministic
  2. KBUILD_CFLAGS   += $(call cc-option,-Werror=date-time)
复制代码
你把这行注释掉,再编译就不会报错了,连警告都不会有。

内核源码禁止使用__DATE__/__TIME__的初衷是为了保证内核镜像的可重现性,即给定源码和config选项,在任何时候编译出来的二进制镜像都应该是完全一致的。
编译器提供的__DATE__/__TIME__固然好用,但由于内核代码庞大,编译耗时长,编译时各个源码参与编译的时间节点不一样,且由于多线程编译,这个时间更加难以控制,所以__TIME__具体的时间完全无法预料,重新编译起一个二进制相同的镜像将不可能实现。

坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2014-8-24
在线时间
146 小时
 楼主| 发表于 2020-12-14 23:46:41 | 显示全部楼层
自己顶
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-12-15 02:13:43 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 20:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表