mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 17:56:06 +00:00

## Why Currently, the system header `errno.h` is included in `libc_errno.h`, which is supposed to be consumed by internal implementations only. As unit and hermetic tests should never use `#include <errno.h>` but instead use `#include "src/errno/libc_errno.h"`, we do not want to implicitly include `errno.h`. In order to have a clear seperation between those two, we want to pull out the definitions of errno numbers from `errno.h`. ## What * Extract the definitions of errno numbers from [include/errno.h.def](https://github.com/llvm/llvm-project/pull/91150/files#diff-ed38ed463ed50571b498a5b69039cab58dc9d145da7f751a24da9d77f07781cd) and place it under [include/llvm-libc-macros/linux/error-number-macros.h](https://github.com/llvm/llvm-project/pull/91150/files#diff-d6192866629690ebb7cefa1f0a90b6675073e9642f3279df08a04dcdb05fd892) * Provide mips-specific errno numbers in [include/llvm-libc-macros/linux/mips/error-number-macros.h](https://github.com/llvm/llvm-project/pull/91150/files#diff-3fd35a4c94e0cc359933e497b10311d857857b2e173e8afebc421b04b7527743) * Find definition of mips errno numbers in glibc [here](ea73eb5f58/sysdeps/unix/sysv/linux/mips/bits/errno.h (L32-L50)
) (equally defined in the Linux kernel) * Provide sparc-specific errno numbers in [include/llvm-libc-macros/linux/sparc/error-number-macros.h](https://github.com/llvm/llvm-project/pull/91150/files#diff-5f16ffb2a51a6f72ebd4403aca7e1edea48289c99dd5978a1c84385bec4f226b) * Find definition of sparc errno numbers in glibc [here](ea73eb5f58/sysdeps/unix/sysv/linux/sparc/bits/errno.h (L33-L51)
) (equally defined in the Linux kernel) * Include proxy header `errno_macros.h` instead of the system header `errno.h` in `libc_errno.h`/`libc_errno.cpp` Closes https://github.com/llvm/llvm-project/issues/80172
9 lines
208 B
C
9 lines
208 B
C
#ifndef LLVM_LIBC_MACROS_ERROR_NUMBER_MACROS_H
|
|
#define LLVM_LIBC_MACROS_ERROR_NUMBER_MACROS_H
|
|
|
|
#ifdef __linux__
|
|
#include "linux/error-number-macros.h"
|
|
#endif
|
|
|
|
#endif // LLVM_LIBC_MACROS_ERROR_NUMBER_MACROS_H
|