MMichael Jones[libc] fix line buffered empty file writes
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc] Add a linux file implementation. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D121976 | 4 年前 | |
[libc] Implement FLAGS option for generating all combinations for targets. Add FLAGS option for add_header_library, add_object_library, add_entrypoint_object, and add_libc_unittest. In general, a flag is a string provided for supported functions under the multi-valued option FLAGS. It should be one of the following forms: FLAG_NAME FLAG_NAME__NO FLAG_NAME__ONLY A target will inherit all the flags of its upstream dependency. When we create a target TARGET_NAME with a flag using (add_header_library, add_object_library, ...), its behavior will depend on the flag form as follow: - FLAG_NAME: The following 2 targets will be generated: TARGET_NAME that has FLAG_NAME in its FLAGS property. TARGET_NAME.__NO_FLAG_NAME that depends on DEP.__NO_FLAG_NAME if TARGET_NAME depends on DEP and DEP has FLAG_NAME in its FLAGS property. - FLAG_NAME__ONLY: Only generate 1 target TARGET_NAME that has FLAG_NAME in its FLAGS property. - FLAG_NAME__NO: Only generate 1 target TARGET_NAME.__NO_FLAG_NAME that depends on DEP.__NO_FLAG_NAME if DEP is in its DEPENDS list and DEP has FLAG_NAME in its FLAGS property. To show all the targets generated, pass SHOW_INTERMEDIATE_OBJECTS=ON to cmake. To show all the targets' dependency and flags, pass SHOW_INTERMEDIATE_OBJECTS=DEPS to cmake. To completely disable a flag FLAG_NAME expansion, set the variable SKIP_FLAG_EXPANSION_FLAG_NAME=TRUE. Reviewed By: michaelrj, sivachandra Differential Revision: https://reviews.llvm.org/D125174 | 4 年前 | |
[libc] fix line buffered empty file writes Previously, any line buffered write of size 0 would cause an error. The variable used to track the index of the last newline started at the size of the write - 1, which underflowed. Now it's handled properly, and a test has been added to prevent regressions. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D127914 | 3 年前 | |
[libc] Add global stdout and stderr objects. They are added as entrypoint object targets. The header-gen infrastructure has been extended to enable handling standard required global objects. The libc-api-test has also been extended to verify the global object declarations. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D126329 | 4 年前 |