[libc] 修复在fcntl.h中两种不同的宏编码方式导致的bug#5267
Merged
Merged
Conversation
This was referenced Nov 14, 2021
Guozhanxin
approved these changes
Nov 15, 2021
Member
Author
|
补充一下,在unix发展过程中 十六进制和八进制的fcntl宏都有 详见:https://stackoverflow.com/questions/37326133/why-fcntl-flag-values-are-defined-in-octal-format-how-this-function-works-fo 目前,RT-Thread, newlib采用其内置的十六进制编码方式;VS采用十六进制,但是其编码和newlib还有区别(例如vs中O_CREAT表示的是0x0100,但是在newlib中表示的是0x0200);musl库采用八进制,RT-Thread给Keil和IAR等不支持UNIX头文件的提供八进制宏。 |
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旨在修复 https://github.com//issues/5186 和 https://github.com//issues/5265 所报告的问题
This PR will fix the problem which is reported by 5265 and 5186
经过再次查证,这个不是arm-链的问题,
历史上fcntl.h有两种标准,一个是以16进制进行编码的版本 也就是newlib arm链用的https://github.com/bminor/newlib/blob/80cda9bbda04a1e9e3bee5eadf99061ed69ca5fb/newlib/libc/include/sys/_default_fcntl.h
还有一种是8进制编码的标准 也就是rtt给keil iar以及musl库用的 https://github.com/bminor/musl/blob/cfdfd5ea3ce14c6abf7fb22a531f3d99518b5a1b/arch/arm/bits/fcntl.h
这两种标准的编码值并不相同,因此造成了冲突,这个问题是我在4.0.4整理libc时引入的。目前已经修复了。
]
以下的内容不应该在提交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