| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc] Refactor AUXV handling with new auxv.h header library (#162326) Closes https://github.com/llvm/llvm-project/issues/153666 This patch introduces a new centralized AUXV (auxiliary vector) handling mechanism for LLVM libc on Linux, replacing the previous scattered implementation across multiple files. ## Key Changes: ### New Files: - **libc/src/__support/OSUtil/linux/auxv.h**: New header library providing a clean interface for AUXV access with: - auxv::Entry struct for AUXV entries (type and value) - auxv::Vector class with iterator support for traversing AUXV - auxv::get() function for retrieving specific AUXV values - Thread-safe initialization with fallback mechanisms (prctl and /proc/self/auxv) ### Modified Files: 1. **libc/src/__support/OSUtil/linux/CMakeLists.txt**: - Added auxv header library declaration with proper dependencies: - libc.hdr.fcntl_macros - libc.src.__support.OSUtil.osutil - libc.src.__support.common - libc.src.__support.CPP.optional - libc.src.__support.threads.callonce 2. **libc/config/linux/app.h**: - Removed AuxEntry struct (moved to auxv.h as auxv::Entry) - Removed auxv_ptr from AppProperties struct - Simplified application properties structure 3. **libc/src/sys/auxv/linux/getauxval.cpp**: - Completely refactored to use new auxv.h interface - Removed ~200 lines of complex initialization code - Simplified to just call auxv::get() function - Removed dependencies to external symbols (mman, prctl, fcntl, read, close, open) 4. **libc/src/sys/auxv/linux/CMakeLists.txt**: - Updated dependencies to use new auxv header library - Removed dependencies to external symbols (prctl, mman, fcntl, unistd, etc.) 5. **libc/startup/linux/do_start.cpp**: - Updated to use new auxv::Vector interface - Changed from pointer-based to iterator-based AUXV traversal - Updated field names (aux_entry->id → aux_entry.type, aux_entry->value → aux_entry.val) - Added call to auxv::Vector::initialize_unsafe() for early AUXV setup 6. **libc/startup/linux/CMakeLists.txt**: - Added dependency on libc.src.__support.OSUtil.linux.auxv | 9 个月前 | |
| 2 年前 | ||
| 1 年前 | ||
[libc] Remove hardcoded sizeof in __barrier_type.h (#153718) This PR modifies the static_asserts checking the expected sizes in __barrier_type.h, so that we can guarantee that our internal implementation fits the public header. | 11 个月前 | |
[libc] Refactor AUXV handling with new auxv.h header library (#162326) Closes https://github.com/llvm/llvm-project/issues/153666 This patch introduces a new centralized AUXV (auxiliary vector) handling mechanism for LLVM libc on Linux, replacing the previous scattered implementation across multiple files. ## Key Changes: ### New Files: - **libc/src/__support/OSUtil/linux/auxv.h**: New header library providing a clean interface for AUXV access with: - auxv::Entry struct for AUXV entries (type and value) - auxv::Vector class with iterator support for traversing AUXV - auxv::get() function for retrieving specific AUXV values - Thread-safe initialization with fallback mechanisms (prctl and /proc/self/auxv) ### Modified Files: 1. **libc/src/__support/OSUtil/linux/CMakeLists.txt**: - Added auxv header library declaration with proper dependencies: - libc.hdr.fcntl_macros - libc.src.__support.OSUtil.osutil - libc.src.__support.common - libc.src.__support.CPP.optional - libc.src.__support.threads.callonce 2. **libc/config/linux/app.h**: - Removed AuxEntry struct (moved to auxv.h as auxv::Entry) - Removed auxv_ptr from AppProperties struct - Simplified application properties structure 3. **libc/src/sys/auxv/linux/getauxval.cpp**: - Completely refactored to use new auxv.h interface - Removed ~200 lines of complex initialization code - Simplified to just call auxv::get() function - Removed dependencies to external symbols (mman, prctl, fcntl, read, close, open) 4. **libc/src/sys/auxv/linux/CMakeLists.txt**: - Updated dependencies to use new auxv header library - Removed dependencies to external symbols (prctl, mman, fcntl, unistd, etc.) 5. **libc/startup/linux/do_start.cpp**: - Updated to use new auxv::Vector interface - Changed from pointer-based to iterator-based AUXV traversal - Updated field names (aux_entry->id → aux_entry.type, aux_entry->value → aux_entry.val) - Added call to auxv::Vector::initialize_unsafe() for early AUXV setup 6. **libc/startup/linux/CMakeLists.txt**: - Added dependency on libc.src.__support.OSUtil.linux.auxv | 9 个月前 | |
| 2 年前 | ||
[libc][NFC] Add stdint.h proxy header to fix dependency issue with <stdint.h> includes. (#150303) https://github.com/llvm/llvm-project/issues/149993 | 1 年前 | |
| 2 年前 | ||
[libc] Use <assert.h> in overlay mode for LIBC_ASSERT (#99875) Summary: This uses internal::exit which is not built in overlay mode, leading to linker errors. Fix this to just use assert.h. | 2 年前 | |
Fixes #118231: Corrected spelling mistake in has_acitive_owner function (#118266) Fixes #118231 - Updated the method name to has_active_owner in llvm-project/libc/src/__support/threads/linux/rwlock.h - Verified usage and updated all references to the method. - Ran tests: - check-llvm-unit - check-all | 1 年前 | |
[libc] fix sysconf test for rv32 (#162685) | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 9 个月前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 9 个月前 |