https://gcc.gnu.org/g:266ea973f954d960e18363fcd3b0e3a6902b14b8
commit r16-7883-g266ea973f954d960e18363fcd3b0e3a6902b14b8 Author: Jerry DeLisle <[email protected]> Date: Tue Mar 3 20:43:54 2026 -0800 Fortran: Fix failures on windows and hpux systems [PR124330] Fix missed hunk in previous commit. PR fortran/124330 libgfortran/ChangeLog: * caf/shmem/shared_memory.c (shared_memory_init): Use putenv() for HPUX and as a fallback where setenv() is not available. Diff: --- libgfortran/caf/shmem/shared_memory.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/libgfortran/caf/shmem/shared_memory.c b/libgfortran/caf/shmem/shared_memory.c index 69c3db6aca21..f3436c65e46a 100644 --- a/libgfortran/caf/shmem/shared_memory.c +++ b/libgfortran/caf/shmem/shared_memory.c @@ -244,16 +244,23 @@ shared_memory_init (shared_memory_act *mem, size_t size) #endif if (!base_ptr) { -#define bufsize 20 - char buffer[bufsize]; - - snprintf (buffer, bufsize, "%p", mem->glbl.base); -#ifdef HAVE_SETENV - setenv (ENV_BASE, buffer, 1); +#if defined(HAVE_SETENV) + char val[20]; + snprintf (val, 20, "%p", mem->glbl.base); + setenv (ENV_BASE, val, 1); +#elif defined(WIN32) + char val[20]; + snprintf (val, 20, "%p", mem->glbl.base); + SetEnvironmentVariable (ENV_BASE, val); #else - SetEnvironmentVariable (ENV_BASE, buffer); + char buffer[28]; + int res; + + /* HP-UX / Legacy Fallback using putenv */ + res = snprintf (buffer, 28, "%s=%p", "ENV_BASE", mem->glbl.base); + if (res != -1) + putenv (buffer); #endif -#undef bufsize } mem->size = size; if (!env_val)
