[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