RE: [PATCH libgpg-error] Add support for IBM z/OS

Sachin T via Gnupg-devel <[email protected]>
Newsgroups gmane.comp.encryption.gpg.devel
Message-ID <CO1PR15MB5003D36B1409071328C22A639773A@CO1PR15MB5003.namprd15.prod.outlook.com>
Thanks.  I’ll update the patch description to mention the $(LIBS) change as well.  I’ll also rename the struct field to env for clarity.

And yes, z/OS is POSIX-compliant in general, but sometimes we run into small quirks like this environ macro.

Regards
Sachin

From: Jacob Bachmeyer <[email protected]>
Date: Tuesday, 17 June 2025 at 7:33 AM
To: Sachin T <[email protected]>, [email protected] <[email protected]>
Subject: [EXTERNAL] Re: [PATCH libgpg-error] Add support for IBM z/OS
On 6/16/25 03: 21, Sachin T via Gnupg-devel wrote: Hi,   Please review the updated patch with comments from Werner, Jacob and Todd fixed.   *Renamed environ variable to avoid conflict with environ defined in z/os stdlib header First, a nit: 

On 6/16/25 03:21, Sachin T via Gnupg-devel wrote:
Hi,

Please review the updated patch with comments from Werner, Jacob and Todd fixed.

*Renamed environ variable to avoid conflict with environ defined in z/os stdlib header

First, a nit:  the renamed environ is a structure field, not a variable.  (I would have used "env" instead of "environ_p" but that is just bikeshedding.)

Second, you are still adding $(LIBS) to the build rule for mkheader and you should mention that as you previously did.

Lastly, I am probably more impressed than I should be that this is all you actually need for a z/OS port.  (The other system that I know of where "environ" is a macro is not a POSIX system.)

Regards
Sachin

---

Signed-off-by: Sachin T [email protected]<mailto:[email protected]>
---
src/Makefile.am   | 2 +-
src/spawn-posix.c | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index e56bb23..7e874cf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -275,7 +275,7 @@ errnos-sym.h: Makefile mkstrtable.awk errnos.in

mkheader$(EXEEXT_FOR_BUILD): mkheader.c Makefile
               $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
-              $(CPPFLAGS_FOR_BUILD) -g -I. -I$(srcdir) -o $@ $(srcdir)/mkheader.c
+             $(CPPFLAGS_FOR_BUILD) -g -I. -I$(srcdir) -o $@ $(srcdir)/mkheader.c $(LIBS)

parts_of_gpg_error_h =                               \
               gpg-error.h.in  \
diff --git a/src/spawn-posix.c b/src/spawn-posix.c
index ac19761..0ffc71e 100644
--- a/src/spawn-posix.c
+++ b/src/spawn-posix.c
@@ -63,7 +63,7 @@
struct gpgrt_spawn_actions {
   int fd[3];
   const int *except_fds;
-  char **environ;
+  char **environ_p;
   const char *const *envchange;
   void (*atfork) (void *);
   void *atfork_arg;
@@ -414,8 +414,8 @@ my_exec (const char *pgmname, const char *argv[], gpgrt_spawn_actions_t act)
   if (pgmname == NULL)
     return 0;

-  if (act->environ)
-    execve (pgmname, (char *const *)argv, act->environ);
+  if (act->environ_p)
+    execve (pgmname, (char *const *)argv, act->environ_p);
   else
     execv (pgmname, (char *const *)argv);

@@ -516,7 +516,7 @@ void
_gpgrt_spawn_actions_set_environ (gpgrt_spawn_actions_t act,
                                   char **environ_for_child)
{
-  act->environ = environ_for_child;
+  act->environ_p = environ_for_child;
}

void
--
2.39.5 (Apple Git-154)



-- Jacob

_______________________________________________
Gnupg-devel mailing list
[email protected]
https://lists.gnupg.org/mailman/listinfo/gnupg-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.