diff options
author | Bruno Haible <bruno@clisp.org> | 2021-12-11 17:43:48 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2021-12-11 17:43:48 +0100 |
commit | 8e3d5944a4c6fca1ecf1d76f669da83861eb0ca0 (patch) | |
tree | 910f6060ab2ae524d5eee8c56c70def92f7de329 /lib | |
parent | 4d1e184fd546db46ca11bb4974e47984366875d9 (diff) | |
download | gnulib-8e3d5944a4c6fca1ecf1d76f669da83861eb0ca0.tar.gz |
get_ppid_of, get_progname_of: Fix compilation error on Mac OS X < 10.5.
Reported by Ryan Schmidt <gnulib@ryandesign.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00011.html>.
* lib/get_ppid_of.c: Include AvailabilityMacros.h
(get_ppid_of): Use MAC_OS_X_VERSION_MAX_ALLOWED and
MAC_OS_X_VERSION_MIN_REQUIRED.
* lib/get_progname_of: Include AvailabilityMacros.h
(get_progname_of): Use MAC_OS_X_VERSION_MAX_ALLOWED and
MAC_OS_X_VERSION_MIN_REQUIRED.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/get_ppid_of.c | 20 | ||||
-rw-r--r-- | lib/get_progname_of.c | 20 |
2 files changed, 32 insertions, 8 deletions
diff --git a/lib/get_ppid_of.c b/lib/get_ppid_of.c index f153b7539c..dd4e38129d 100644 --- a/lib/get_ppid_of.c +++ b/lib/get_ppid_of.c @@ -33,7 +33,13 @@ #endif #if defined __APPLE__ && defined __MACH__ /* Mac OS X */ -# include <libproc.h> +/* Get MAC_OS_X_VERSION_MIN_REQUIRED, MAC_OS_X_VERSION_MAX_ALLOWED. + The version at runtime satisfies + MAC_OS_X_VERSION_MIN_REQUIRED <= version <= MAC_OS_X_VERSION_MAX_ALLOWED. */ +# include <AvailabilityMacros.h> +# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 +# include <libproc.h> +# endif #endif #if defined _AIX /* AIX */ @@ -226,14 +232,19 @@ get_ppid_of (pid_t pid) #endif #if defined __APPLE__ && defined __MACH__ /* Mac OS X */ +# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 -# if defined PROC_PIDT_SHORTBSDINFO + /* Mac OS X >= 10.7 has PROC_PIDT_SHORTBSDINFO. */ +# if defined PROC_PIDT_SHORTBSDINFO struct proc_bsdshortinfo info; if (proc_pidinfo (pid, PROC_PIDT_SHORTBSDINFO, 0, &info, sizeof (info)) == sizeof (info)) return info.pbsi_ppid; -# else +# endif + +# if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 + /* For older versions, use PROC_PIDTBSDINFO instead. */ /* Note: The second part of 'struct proc_bsdinfo' differs in size between 32-bit and 64-bit environments, and the kernel of Mac OS X 10.5 knows only about the 32-bit 'struct proc_bsdinfo'. Fortunately all the info @@ -242,8 +253,9 @@ get_ppid_of (pid_t pid) if (proc_pidinfo (pid, PROC_PIDTBSDINFO, 0, &info, 128) == 128) return info.pbi_ppid; -# endif +# endif +# endif #endif #if defined _AIX /* AIX */ diff --git a/lib/get_progname_of.c b/lib/get_progname_of.c index 46144e7426..bdda3c60d8 100644 --- a/lib/get_progname_of.c +++ b/lib/get_progname_of.c @@ -41,7 +41,13 @@ #endif #if defined __APPLE__ && defined __MACH__ /* Mac OS X */ -# include <libproc.h> +/* Get MAC_OS_X_VERSION_MIN_REQUIRED, MAC_OS_X_VERSION_MAX_ALLOWED. + The version at runtime satisfies + MAC_OS_X_VERSION_MIN_REQUIRED <= version <= MAC_OS_X_VERSION_MAX_ALLOWED. */ +# include <AvailabilityMacros.h> +# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 +# include <libproc.h> +# endif #endif #if defined _AIX /* AIX */ @@ -266,14 +272,19 @@ get_progname_of (pid_t pid) #endif #if defined __APPLE__ && defined __MACH__ /* Mac OS X */ +# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 -# if defined PROC_PIDT_SHORTBSDINFO + /* Mac OS X >= 10.7 has PROC_PIDT_SHORTBSDINFO. */ +# if defined PROC_PIDT_SHORTBSDINFO struct proc_bsdshortinfo info; if (proc_pidinfo (pid, PROC_PIDT_SHORTBSDINFO, 0, &info, sizeof (info)) == sizeof (info)) return strdup (info.pbsi_comm); -# else +# endif + +# if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 + /* For older versions, use PROC_PIDTBSDINFO instead. */ /* Note: The second part of 'struct proc_bsdinfo' differs in size between 32-bit and 64-bit environments, and the kernel of Mac OS X 10.5 knows only about the 32-bit 'struct proc_bsdinfo'. Fortunately all the info @@ -282,8 +293,9 @@ get_progname_of (pid_t pid) if (proc_pidinfo (pid, PROC_PIDTBSDINFO, 0, &info, 128) == 128) return strdup (info.pbi_comm); -# endif +# endif +# endif #endif #if defined _AIX /* AIX */ |