[libc-commits] [libc] 9a65dc9 - Add sysexits.h header with BSD exit codes (total-18) (#126112)
via libc-commits
libc-commits at lists.llvm.org
Thu Mar 6 16:25:17 PST 2025
Author: Ajay Raj
Date: 2025-03-06T16:25:14-08:00
New Revision: 9a65dc95133fba5e05eda3bb7b14f061d56dcd0b
URL: https://github.com/llvm/llvm-project/commit/9a65dc95133fba5e05eda3bb7b14f061d56dcd0b
DIFF: https://github.com/llvm/llvm-project/commit/9a65dc95133fba5e05eda3bb7b14f061d56dcd0b.diff
LOG: Add sysexits.h header with BSD exit codes (total-18) (#126112)
This pull request adds a new header file, SysExits.h, to the LLVM
project. The header includes 18 BSD exit code.
Added:
libc/include/llvm-libc-macros/sysexits-macros.h
libc/include/sysexits.h.def
libc/include/sysexits.yaml
Modified:
libc/config/linux/aarch64/headers.txt
libc/config/linux/x86_64/headers.txt
libc/include/CMakeLists.txt
libc/include/llvm-libc-macros/CMakeLists.txt
Removed:
################################################################################
diff --git a/libc/config/linux/aarch64/headers.txt b/libc/config/linux/aarch64/headers.txt
index 54c65765abe4a..f4223ed8a225d 100644
--- a/libc/config/linux/aarch64/headers.txt
+++ b/libc/config/linux/aarch64/headers.txt
@@ -29,6 +29,7 @@ set(TARGET_PUBLIC_HEADERS
libc.include.sys_socket
libc.include.sys_syscall
libc.include.sys_time
+ libc.include.sysexits
libc.include.sys_wait
libc.include.threads
libc.include.time
diff --git a/libc/config/linux/x86_64/headers.txt b/libc/config/linux/x86_64/headers.txt
index bd2fc3df75964..01b0bf36498ce 100644
--- a/libc/config/linux/x86_64/headers.txt
+++ b/libc/config/linux/x86_64/headers.txt
@@ -50,6 +50,7 @@ set(TARGET_PUBLIC_HEADERS
libc.include.sys_types
libc.include.sys_utsname
libc.include.sys_wait
+ libc.include.sysexits
libc.include.termios
libc.include.threads
libc.include.time
diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt
index 41f6d3b67c95b..34f7c78b9783e 100644
--- a/libc/include/CMakeLists.txt
+++ b/libc/include/CMakeLists.txt
@@ -168,6 +168,16 @@ add_header_macro(
.llvm-libc-types.stdfix-types
)
+
+add_header_macro(
+ sysexits
+ ../libc/include/sysexits.yaml
+ sysexits.h
+ DEPENDS
+ .llvm-libc-macros.sysexits_macros
+)
+
+
# TODO: This should be conditional on POSIX networking being included.
file(MAKE_DIRECTORY ${LIBC_INCLUDE_DIR}/arpa)
diff --git a/libc/include/llvm-libc-macros/CMakeLists.txt b/libc/include/llvm-libc-macros/CMakeLists.txt
index 7f10e773479a3..7aa549ddc75d9 100644
--- a/libc/include/llvm-libc-macros/CMakeLists.txt
+++ b/libc/include/llvm-libc-macros/CMakeLists.txt
@@ -343,3 +343,10 @@ add_macro_header(
HDR
EFIAPI-macros.h
)
+
+add_macro_header(
+ sysexits_macros
+ HDR
+ sysexits-macros.h
+)
+
diff --git a/libc/include/llvm-libc-macros/sysexits-macros.h b/libc/include/llvm-libc-macros/sysexits-macros.h
new file mode 100644
index 0000000000000..52f838788632b
--- /dev/null
+++ b/libc/include/llvm-libc-macros/sysexits-macros.h
@@ -0,0 +1,29 @@
+//===-- Macros defined in sysexits.h header file --------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SYSEXITS_MACROS_H
+#define SYSEXITS_MACROS_H
+
+#define EX_OK 0 // Successful termination
+#define EX_USAGE 64 // Command line usage error
+#define EX_DATAERR 65 // Data format error
+#define EX_NOINPUT 66 // Cannot open input
+#define EX_NOUSER 67 // Addressee unknown
+#define EX_NOHOST 68 // Host name unknown
+#define EX_UNAVAILABLE 69 // Service unavailable
+#define EX_SOFTWARE 70 // Internal software error
+#define EX_OSERR 71 // Operating system error
+#define EX_OSFILE 72 // System file error
+#define EX_CANTCREAT 73 // Cannot create (user) output file
+#define EX_IOERR 74 // Input/output error
+#define EX_TEMPFAIL 75 // Temporary failure, try again
+#define EX_PROTOCOL 76 // Remote protocol error
+#define EX_NOPERM 77 // Permission denied
+#define EX_CONFIG 78 // Configuration error
+
+#endif // SYSEXITS_MACROS_H
diff --git a/libc/include/sysexits.h.def b/libc/include/sysexits.h.def
new file mode 100644
index 0000000000000..58e65a62f4903
--- /dev/null
+++ b/libc/include/sysexits.h.def
@@ -0,0 +1,17 @@
+//===-- POSIX header sysexits.h -----------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#ifndef LLVM_LIBC_SYSEXITS_H
+#define LLVM_LIBC_SYSEXITS_H
+
+#include "__llvm-libc-common.h"
+#include "llvm-libc-macros/sysexits-macros.h"
+
+%%public_api()
+
+#endif // LLVM_LIBC_SYSEXITS_H
+
diff --git a/libc/include/sysexits.yaml b/libc/include/sysexits.yaml
new file mode 100644
index 0000000000000..753d99205ec29
--- /dev/null
+++ b/libc/include/sysexits.yaml
@@ -0,0 +1,10 @@
+header: sysexits.h
+header_template: sysexits.h.def
+standards:
+ - BSDExtensions
+ - GNUExtensions
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
More information about the libc-commits
mailing list