aboutsummaryrefslogtreecommitdiff
path: root/mlir/test/python/lib/PythonTestModulePybind11.cpp
diff options
context:
space:
mode:
authorSchrodinger ZHU Yifan <yifanzhu@rochester.edu>2025-10-08 10:00:05 -0400
committerGitHub <noreply@github.com>2025-10-08 10:00:05 -0400
commit0db5ba0ce6c36c78f93ebfe992c0f9ed807328bb (patch)
tree1fd011cda2ba3ea58f6b89efce4e044e90c10a8f /mlir/test/python/lib/PythonTestModulePybind11.cpp
parent801b1dc9cc17ed8b135348add7f95efbd096981d (diff)
downloadllvm-0db5ba0ce6c36c78f93ebfe992c0f9ed807328bb.zip
llvm-0db5ba0ce6c36c78f93ebfe992c0f9ed807328bb.tar.gz
llvm-0db5ba0ce6c36c78f93ebfe992c0f9ed807328bb.tar.bz2
[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`
Diffstat (limited to 'mlir/test/python/lib/PythonTestModulePybind11.cpp')
0 files changed, 0 insertions, 0 deletions