summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Konojacki <me@xenu.pl>2022-04-19 16:41:23 +0200
committerxenu <me@xenu.pl>2022-05-29 00:54:10 +0200
commit2e2065489c88c6bfe07d822175cfdefdb707db11 (patch)
treea72ddce223dc4b39211e41340d8297a7d1cbbe8e
parent5e893970ee39be35c481c85da49c569c9e7417d8 (diff)
downloadperl-2e2065489c88c6bfe07d822175cfdefdb707db11.tar.gz
probe for setenv in Configure
-rwxr-xr-xConfigure6
-rw-r--r--Cross/config.sh-arm-linux1
-rw-r--r--Cross/config.sh-arm-linux-n7701
-rw-r--r--Porting/config.sh1
-rwxr-xr-xconfig_h.SH6
-rw-r--r--plan9/config_sh.sample1
-rw-r--r--uconfig.h10
-rw-r--r--uconfig.sh1
-rw-r--r--uconfig64.sh1
-rw-r--r--util.c14
-rw-r--r--win32/config.gc1
-rw-r--r--win32/config.vc1
12 files changed, 31 insertions, 13 deletions
diff --git a/Configure b/Configure
index bd96249c07..f8050a3ce5 100755
--- a/Configure
+++ b/Configure
@@ -761,6 +761,7 @@ d_semget=''
d_semop=''
d_sendmsg=''
d_setegid=''
+d_setenv=''
d_seteuid=''
d_setgrent=''
d_setgrent_r=''
@@ -18038,6 +18039,10 @@ eval $inlibc
set setegid d_setegid
eval $inlibc
+: see if setenv exists
+set setenv d_setenv
+eval $inlibc
+
: see if seteuid exists
set seteuid d_seteuid
eval $inlibc
@@ -24951,6 +24956,7 @@ d_semget='$d_semget'
d_semop='$d_semop'
d_sendmsg='$d_sendmsg'
d_setegid='$d_setegid'
+d_setenv='$d_setenv'
d_seteuid='$d_seteuid'
d_setgrent='$d_setgrent'
d_setgrent_r='$d_setgrent_r'
diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index edbf1ad0e8..4c991d5aad 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -489,6 +489,7 @@ d_semget='define'
d_semop='define'
d_sendmsg='define'
d_setegid='define'
+d_setenv='undef'
d_seteuid='define'
d_setgrent='define'
d_setgrent_r='undef'
diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770
index 1065ed1599..e0866e3a67 100644
--- a/Cross/config.sh-arm-linux-n770
+++ b/Cross/config.sh-arm-linux-n770
@@ -488,6 +488,7 @@ d_semget='define'
d_semop='define'
d_sendmsg='define'
d_setegid='define'
+d_setenv='undef'
d_seteuid='define'
d_setgrent='define'
d_setgrent_r='undef'
diff --git a/Porting/config.sh b/Porting/config.sh
index 0451737d2f..9fae937db7 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -509,6 +509,7 @@ d_semget='define'
d_semop='define'
d_sendmsg='define'
d_setegid='define'
+d_setenv='undef'
d_seteuid='define'
d_setgrent='define'
d_setgrent_r='undef'
diff --git a/config_h.SH b/config_h.SH
index b817483315..df5f42ac9e 100755
--- a/config_h.SH
+++ b/config_h.SH
@@ -3294,6 +3294,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_sendmsg HAS_SENDMSG /**/
+/* HAS_SETENV:
+ * This symbol, if defined, indicates that the setenv routine is
+ * available for use.
+ */
+#$d_setenv HAS_SETENV /**/
+
/* HAS_SETITIMER:
* This symbol, if defined, indicates that the setitimer routine is
* available to set interval timers.
diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample
index 688183ed22..dcd66faaff 100644
--- a/plan9/config_sh.sample
+++ b/plan9/config_sh.sample
@@ -489,6 +489,7 @@ d_semget='undef'
d_semop='undef'
d_sendmsg='undef'
d_setegid='undef'
+d_setenv='undef'
d_seteuid='undef'
d_setgrent='define'
d_setgrent_r='undef'
diff --git a/uconfig.h b/uconfig.h
index bf6369523d..7648b8f01c 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -3259,6 +3259,12 @@
*/
/*#define HAS_SENDMSG / **/
+/* HAS_SETENV:
+ * This symbol, if defined, indicates that the setenv routine is
+ * available for use.
+ */
+/*#define HAS_SETENV / **/
+
/* HAS_SETITIMER:
* This symbol, if defined, indicates that the setitimer routine is
* available to set interval timers.
@@ -5340,6 +5346,6 @@
#endif
/* Generated from:
- * 87e5998978daf803d19866c43bca24d7c01dc74119650db16f8d18d83f355da9 config_h.SH
- * 11321d14171cb6f149d3ec9c72331ca36d770a4357d0820a12d290bb12357aa1 uconfig.sh
+ * 8c961decbb871f9aa0865ec6164bd1dd007bdb811dd78afdf20e47171bfd441a config_h.SH
+ * 19bd12935947a7874015a5e6559bdd33363b49755d1e42cc7aebe0fb7ec54657 uconfig.sh
* ex: set ro: */
diff --git a/uconfig.sh b/uconfig.sh
index dac12efe0d..f8f61b213d 100644
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -429,6 +429,7 @@ d_semget='undef'
d_semop='undef'
d_sendmsg='undef'
d_setegid='undef'
+d_setenv='undef'
d_seteuid='undef'
d_setgrent='undef'
d_setgrent_r='undef'
diff --git a/uconfig64.sh b/uconfig64.sh
index 48347ab2de..e85fc426d1 100644
--- a/uconfig64.sh
+++ b/uconfig64.sh
@@ -429,6 +429,7 @@ d_semget='undef'
d_semop='undef'
d_sendmsg='undef'
d_setegid='undef'
+d_setenv='undef'
d_seteuid='undef'
d_setgrent='undef'
d_setgrent_r='undef'
diff --git a/util.c b/util.c
index ca7d374841..0445c62a6c 100644
--- a/util.c
+++ b/util.c
@@ -2426,19 +2426,11 @@ Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits,
#ifdef USE_ENVIRON_ARRAY
/* NB: VMS' my_setenv() is in vms.c */
-/* Configure doesn't test for HAS_SETENV yet, so decide based on platform.
- * For Solaris, setenv() and unsetenv() were introduced in Solaris 9, so
- * testing for HAS UNSETENV is sufficient.
- */
-# if defined(__CYGWIN__)|| defined(__riscos__) || (defined(__sun) && defined(HAS_UNSETENV)) || defined(PERL_DARWIN)
-# define MY_HAS_SETENV
-# endif
-
/* small wrapper for use by Perl_my_setenv that mallocs, or reallocs if
* 'current' is non-null, with up to three sizes that are added together.
* It handles integer overflow.
*/
-# ifndef MY_HAS_SETENV
+# ifndef HAS_SETENV
static char *
S_env_alloc(void *current, Size_t l1, Size_t l2, Size_t l3, Size_t size)
{
@@ -2555,7 +2547,7 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val)
# endif /* !PERL_USE_SAFE_PUTENV */
-# ifdef MY_HAS_SETENV
+# ifdef HAS_SETENV
# if defined(HAS_UNSETENV)
if (val == NULL) {
(void)unsetenv(nam);
@@ -2593,7 +2585,7 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val)
my_setenv_format(new_env, nam, nlen, val, vlen);
(void)putenv(new_env);
-# endif /* MY_HAS_SETENV */
+# endif /* HAS_SETENV */
# ifndef PERL_USE_SAFE_PUTENV
}
diff --git a/win32/config.gc b/win32/config.gc
index fbe0350c86..426f9b1607 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -478,6 +478,7 @@ d_semget='undef'
d_semop='undef'
d_sendmsg='undef'
d_setegid='undef'
+d_setenv='undef'
d_seteuid='undef'
d_setgrent='undef'
d_setgrent_r='undef'
diff --git a/win32/config.vc b/win32/config.vc
index ced877942a..6233dbeda0 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -478,6 +478,7 @@ d_semget='undef'
d_semop='undef'
d_sendmsg='undef'
d_setegid='undef'
+d_setenv='undef'
d_seteuid='undef'
d_setgrent='undef'
d_setgrent_r='undef'