[llvm] eec1ee8 - [SystemZ][z/OS] Enable lit testing for z/OS (#107631)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 9 11:37:57 PDT 2024


Author: Abhina Sree
Date: 2024-09-09T14:37:53-04:00
New Revision: eec1ee8ef10820c61c03b00b68d242d8c87d478a

URL: https://github.com/llvm/llvm-project/commit/eec1ee8ef10820c61c03b00b68d242d8c87d478a
DIFF: https://github.com/llvm/llvm-project/commit/eec1ee8ef10820c61c03b00b68d242d8c87d478a.diff

LOG: [SystemZ][z/OS] Enable lit testing for z/OS (#107631)

This patch fixes various errors to enable llvm-lit to run on z/OS

Added: 
    

Modified: 
    llvm/lib/Support/raw_ostream.cpp
    llvm/utils/lit/lit/run.py
    llvm/utils/lit/lit/util.py

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Support/raw_ostream.cpp b/llvm/lib/Support/raw_ostream.cpp
index 48f04091e9e39b..5d30c797ebf5b1 100644
--- a/llvm/lib/Support/raw_ostream.cpp
+++ b/llvm/lib/Support/raw_ostream.cpp
@@ -843,6 +843,10 @@ size_t raw_fd_ostream::preferred_buffer_size() const {
   if (IsWindowsConsole)
     return 0;
   return raw_ostream::preferred_buffer_size();
+#elif defined(__MVS__)
+  // The buffer size on z/OS is defined with macro BUFSIZ, which can be
+  // retrieved by invoking function raw_ostream::preferred_buffer_size().
+  return raw_ostream::preferred_buffer_size();
 #else
   assert(FD >= 0 && "File not yet open!");
   struct stat statbuf;

diff  --git a/llvm/utils/lit/lit/run.py b/llvm/utils/lit/lit/run.py
index 535c859352cc4d..62070e824e87fa 100644
--- a/llvm/utils/lit/lit/run.py
+++ b/llvm/utils/lit/lit/run.py
@@ -1,5 +1,6 @@
 import multiprocessing
 import os
+import platform
 import time
 
 import lit.Test
@@ -136,6 +137,6 @@ def _increase_process_limit(self):
                     "Raised process limit from %d to %d" % (soft_limit, desired_limit)
                 )
         except Exception as ex:
-            # Warn, unless this is Windows, in which case this is expected.
-            if os.name != "nt":
+            # Warn, unless this is Windows or z/OS, in which case this is expected.
+            if os.name != "nt" and platform.system() != "OS/390":
                 self.lit_config.warning("Failed to raise process limit: %s" % ex)

diff  --git a/llvm/utils/lit/lit/util.py b/llvm/utils/lit/lit/util.py
index a2452f5566b772..4e75cce092c672 100644
--- a/llvm/utils/lit/lit/util.py
+++ b/llvm/utils/lit/lit/util.py
@@ -502,7 +502,7 @@ def killProcessAndChildrenIsSupported():
         otherwise is contains a string describing why the function is
         not supported.
     """
-    if platform.system() == "AIX":
+    if platform.system() == "AIX" or platform.system() == "OS/390":
         return (True, "")
     try:
         import psutil  # noqa: F401
@@ -528,6 +528,9 @@ def killProcessAndChildren(pid):
     """
     if platform.system() == "AIX":
         subprocess.call("kill -kill $(ps -o pid= -L{})".format(pid), shell=True)
+    elif platform.system() == "OS/390":
+        # FIXME: Only the process is killed.
+        subprocess.call("kill -KILL $(ps -s {} -o pid=)".format(pid), shell=True)
     else:
         import psutil
 


        


More information about the llvm-commits mailing list