Merge branch 'dh/runtime-prefix-on-zos'

Support for the RUNTIME_PREFIX feature has been added to z/OS port.

* dh/runtime-prefix-on-zos:
  exec_cmd: RUNTIME_PREFIX on z/OS systems
This commit is contained in:
Junio C Hamano
2024-09-03 09:15:00 -07:00
3 changed files with 32 additions and 0 deletions

View File

@ -385,6 +385,10 @@ include shared.mak
# supports calling _NSGetExecutablePath to retrieve the path of the running
# executable.
#
# When using RUNTIME_PREFIX, define HAVE_ZOS_GET_EXECUTABLE_PATH if your platform
# supports calling __getprogramdir and getprogname to retrieve the path of the
# running executable.
#
# When using RUNTIME_PREFIX, define HAVE_WPGMPTR if your platform offers
# the global variable _wpgmptr containing the absolute path of the current
# executable (this is the case on Windows).
@ -2157,6 +2161,10 @@ ifdef HAVE_NS_GET_EXECUTABLE_PATH
BASIC_CFLAGS += -DHAVE_NS_GET_EXECUTABLE_PATH
endif
ifdef HAVE_ZOS_GET_EXECUTABLE_PATH
BASIC_CFLAGS += -DHAVE_ZOS_GET_EXECUTABLE_PATH
endif
ifdef HAVE_WPGMPTR
BASIC_CFLAGS += -DHAVE_WPGMPTR
endif

View File

@ -648,6 +648,7 @@ ifeq ($(uname_S),OS/390)
NO_GECOS_IN_PWENT = YesPlease
HAVE_STRINGS_H = YesPlease
NEEDS_MODE_TRANSLATION = YesPlease
HAVE_ZOS_GET_EXECUTABLE_PATH = YesPlease
endif
ifeq ($(uname_S),MINGW)
ifeq ($(shell expr "$(uname_R)" : '1\.'),2)

View File

@ -150,6 +150,25 @@ static int git_get_exec_path_darwin(struct strbuf *buf)
}
#endif /* HAVE_NS_GET_EXECUTABLE_PATH */
#ifdef HAVE_ZOS_GET_EXECUTABLE_PATH
/*
* Resolves the executable path from current program's directory and name.
*
* Returns 0 on success, -1 on failure.
*/
static int git_get_exec_path_zos(struct strbuf *buf)
{
char *dir = __getprogramdir();
char *exe = getprogname();
if (dir && exe) {
strbuf_addf(buf, "%s/%s", dir, exe);
return 0;
}
return -1;
}
#endif /* HAVE_ZOS_GET_EXECUTABLE_PATH */
#ifdef HAVE_WPGMPTR
/*
* Resolves the executable path by using the global variable _wpgmptr.
@ -206,6 +225,10 @@ static int git_get_exec_path(struct strbuf *buf, const char *argv0)
git_get_exec_path_wpgmptr(buf) &&
#endif /* HAVE_WPGMPTR */
#ifdef HAVE_ZOS_GET_EXECUTABLE_PATH
git_get_exec_path_zos(buf) &&
#endif /*HAVE_ZOS_GET_EXECUTABLE_PATH */
git_get_exec_path_from_argv0(buf, argv0)) {
return -1;
}