<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi,</div>
<div dir="ltr" style="font-family: "Aptos Light", Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
This patch provides two z/OS fixes:</div>
<ol start="1" style="text-align: left;">
<li style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation">configure.ac: Correct the build_os name and use pkg-config to find zoslib on z/OS and set EXTRA_LIBS_FOR_BUILD to the actual linker flags returned by pkg-config; fail with a clear error if zoslib.pc is not found.</div>
</li><li style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation">src/spawn-posix.c: rename the gpgrt_spawn_actions member environ to env. This avoids a name collision with the global symbol “environ” (defined as a macro on z/OS), which cause build issues.</div>
</li></ol>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Signed-off-by: Sachin T <sachin.t@ibm.com></div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
---</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
configure.ac | 8 +++++---</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
src/spawn-posix.c | 8 ++++----</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
2 files changed, 9 insertions(+), 7 deletions(-)</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
diff --git a/configure.ac b/configure.ac</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
index 9792cba..359cc29 100644</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
--- a/configure.ac</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+++ b/configure.ac</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
@@ -144,11 +144,13 @@ esac</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
# Set some variables for building build platform helpers.</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
case "$build_os" in</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
- *zOS*)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
- EXTRA_LIBS_FOR_BUILD=zoslib</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ *openedition*)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ PKG_CHECK_MODULES([ZOSLIB], [zoslib],</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ [EXTRA_LIBS_FOR_BUILD="$ZOSLIB_LIBS"],</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ [AC_MSG_ERROR([zoslib not found. Please ensure zoslib.pc is in PKG_CONFIG_PATH.])])</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
*)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
- EXTRA_LIBS_FOR_BUILD=</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ EXTRA_LIBS_FOR_BUILD=""</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
esac</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
AC_SUBST(EXTRA_LIBS_FOR_BUILD)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
diff --git a/src/spawn-posix.c b/src/spawn-posix.c</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
index 8cdd032..73cef10 100644</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
--- a/src/spawn-posix.c</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+++ b/src/spawn-posix.c</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
@@ -63,7 +63,7 @@</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
struct gpgrt_spawn_actions {</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
int fd[3];</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
const int *except_fds;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
- char **environ;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ char **env;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
const char *const *envchange;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
void (*atfork) (void *);</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
void *atfork_arg;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
@@ -432,8 +432,8 @@ my_exec (const char *pgmname, const char *argv[], gpgrt_spawn_actions_t act,</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
if (pgmname == NULL)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
return 0;</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
- if (act->environ)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
- execve (pgmname, (char *const *)argv, act->environ);</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ if (act->env)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ execve (pgmname, (char *const *)argv, act->env);</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
else</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
execv (pgmname, (char *const *)argv);</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
@@ -534,7 +534,7 @@ void</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
_gpgrt_spawn_actions_set_environ (gpgrt_spawn_actions_t act,</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
char **environ_for_child)</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
{</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
- act->environ = environ_for_child;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
+ act->env = environ_for_child;</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
}</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
void</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
--</div>
<div style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
2.51.0</div>
<div dir="ltr" style="font-family: Aptos, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="mail-editor-reference-message-container">
<div dir="ltr" class="ms-outlook-mobile-reference-message skipProofing">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
</div>
<div class="ms-outlook-mobile-reference-message skipProofing" style="text-align: left; padding: 3pt 0in 0in; border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentcolor currentcolor; font-family: Aptos; font-size: 12pt; color: black;">
<b>From: </b>Sachin T <sachin.t@ibm.com><br>
<b>Date: </b>Monday, 30 June 2025 at 10:25 PM<br>
<b>To: </b>Werner Koch <wk@gnupg.org>, Sachin T via Gnupg-devel <gnupg-devel@gnupg.org><br>
<b>Subject: </b>Re: [EXTERNAL] Re: [PATCH libgpg-error] Add patch to support IBM z/OS<br>
<br>
</div>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
<span style="font-size: 11pt;">Hi,</span></p>
<p class="WordSection1">Apologies for the delayed response.</p>
<p class="WordSection1">Thank you for the suggestions. I will look into both options and follow up with a patch once I have a solution prepared.</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
<span style="font-size: 11pt;">Regards</span></p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
<span style="font-size: 11pt;">Sachin</span></p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
<span style="font-size: 11pt;"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 12pt; font-family: Aptos, sans-serif; font-size: 12pt;">
On 20/06/25, 9:31<span style="font-family: Arial, sans-serif;"> </span>PM, "Werner Koch" <wk@gnupg.org> wrote:</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
On Fri, 20 Jun 2025 10:44, Sachin T said:</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
> zoslib consists of two static libraries and one separate object</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
> file. Due to a z/OS linker limitation, the .o file can’t be included</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
> inside an archive , it may get ignored unless one of its symbols is</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
> explicitly referenced.</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
I think we have something like this also for an older SunOS or so. The</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
solution was to explictly reference the symbol for the main code. I</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
think this was/is in Libgcrypt but I can't remember. But no problem if</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
you already have a solution.</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
> Or would you prefer this logic be handled entirely within configure.ac?</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
I think it better to put this into configure.ac - this also documents</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
the need for them.</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
+case "$build_os" in</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
+ *zOS*)</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
+ EXTRA_LIBS_FOR_BUILD=-lzoslib -lzoslib-supp <lib_path>/celquopt.s.o</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
+ ;;</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
Is there any standard <lib_path> or can this be figured out at configure</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
run time?</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
Another option would be to add it to autogen.rc and extend autogen.sh</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
with a --build-zos option like we did for Windows.</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
Shalom-Salam,</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
Werner</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
--</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
The pioneers of a warless world are the youth that</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
refuse military service. - A. Einstein</p>
<p class="MsoNormal" style="margin: 0cm; font-family: Aptos, sans-serif; font-size: 12pt;">
</p>
</div>
</body>
</html>