improve libc time and MSVC simulator#5775
Merged
Merged
Conversation
Guozhanxin
reviewed
Apr 6, 2022
Guozhanxin
reviewed
Apr 6, 2022
Guozhanxin
reviewed
Apr 6, 2022
Member
Author
|
squash的时候帮我整理一下commit 复制下面的内容即可 |
Guozhanxin
approved these changes
Apr 6, 2022
enkiller
approved these changes
Apr 7, 2022
| #include <winsock.h> /* for struct timeval */ | ||
| #endif | ||
| #include <corecrt.h> /* for __time64_t */ | ||
| typedef __time64_t time_t; |
Contributor
There was a problem hiding this comment.
这个地方要留意
get_timeval 和 set_timeval 里面有这样一段代码
static int set_timeval(struct timeval *tv)
{
rst = rt_device_control(device, RT_DEVICE_CTRL_RTC_SET_TIME, &tv->tv_sec);
rt_device_control(device, RT_DEVICE_CTRL_RTC_SET_TIMEVAL, tv);
}vs 上 struct timeval 中的 tv_sec 类型是 long,RTC 驱动那边,会当成 time_t * 进行赋值,会造成不致命的内存越界
// 这种形式会写穿 tv_usec,不致命
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* and microseconds */
};
// 这种形式会写穿后面的内存,致命
struct timeval {
long tv_usec; /* and microseconds */
long tv_sec; /* seconds */
};
Member
Author
There was a problem hiding this comment.
struct timeval {
long tv_usec; /* and microseconds */
long tv_sec; /* seconds */
};
这种倒过来的形式在newlib vs都没有 都是正着的
time64可以先放着,因为后续都要升级到64位了,要应对2038的问题。
Member
Author
There was a problem hiding this comment.
看来2038的问题不只是time_t 32改64这么简单,相关的时间结构体 long都得改成longlong
24 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
拉取/合并请求描述:(PR description)
以下的内容不应该在提交PR时的message修改,修改下述message,PR会被直接关闭。请在提交PR后,浏览器查看PR并对以下检查项逐项check,没问题后逐条在页面上打钩。
The following content must not be changed in the submitted PR message. Otherwise, the PR will be closed immediately. After submitted PR, please use a web browser to visit PR, and check items one by one, and ticked them if no problem.
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up