summaryrefslogtreecommitdiff
path: root/hints
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
commitae6b6b71cdbfb3fb6e1192178fa1e530a2f07ece (patch)
tree19d644c0277a598f8f5b2062ef20b43d78591c61 /hints
parentb95d23342a119c6677aa5ad786ca7d002c98bef2 (diff)
downloadperl-ae6b6b71cdbfb3fb6e1192178fa1e530a2f07ece.tar.gz
make PERL_USE_SAFE_PUTENV the default and the only option
Now environ isn't owned by Perl and calling setenv/putenv in XS code will no longer result in memory corruption. Fixes #19399
Diffstat (limited to 'hints')
-rw-r--r--hints/cygwin.sh2
-rw-r--r--hints/darwin.sh10
-rw-r--r--hints/os390.sh2
-rw-r--r--hints/riscos.sh2
-rw-r--r--hints/solaris_2.sh15
5 files changed, 2 insertions, 29 deletions
diff --git a/hints/cygwin.sh b/hints/cygwin.sh
index 40edf5f6b1..9988b3eb48 100644
--- a/hints/cygwin.sh
+++ b/hints/cygwin.sh
@@ -31,7 +31,7 @@ test -z "$optimize" && optimize='-O3'
man3ext='3pm'
test -z "$use64bitint" && use64bitint='define'
test -z "$useithreads" && useithreads='define'
-ccflags="$ccflags -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -D_GNU_SOURCE"
+ccflags="$ccflags -U__STRICT_ANSI__ -D_GNU_SOURCE"
# - otherwise i686-cygwin
archname='cygwin'
diff --git a/hints/darwin.sh b/hints/darwin.sh
index ea521003c3..97a3ec59a9 100644
--- a/hints/darwin.sh
+++ b/hints/darwin.sh
@@ -509,16 +509,6 @@ esac
# the problem.
firstmakefile=GNUmakefile;
-# Parts of the system call setenv(), in particular in an atfork handler.
-# This causes problems when the child tries to clean up environ[], so
-# let libc manage environ[].
-cat >> config.over <<'EOOVER'
-if test "$d_unsetenv" = "$define" -a \
- `expr "$ccflags" : '.*-DPERL_USE_SAFE_PUTENV'` -eq 0; then
- ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
-fi
-EOOVER
-
# if you use a newer toolchain before OS X 10.9 these functions may be
# incorrectly detected, so disable them
# OS X 10.10.x corresponds to kernel 14.x
diff --git a/hints/os390.sh b/hints/os390.sh
index 8995d8c353..56f247bfcf 100644
--- a/hints/os390.sh
+++ b/hints/os390.sh
@@ -63,8 +63,6 @@ myfirstchar=$(od -A n -N 1 -t x $me | xargs | tr [:lower:] [:upper:] | tr -d 0)
if [ "${myfirstchar}" = "23" ]; then # 23 is '#' in ASCII
unset ebcdic
def_os390_cflags="$def_os390_cflags -qascii"
- # ensure that 'safe' putenv is used and avoid direct environ manipulation
- def_os390_defs="$def_os390_defs -DPERL_USE_SAFE_PUTENV";
else
ebcdic=true
fi
diff --git a/hints/riscos.sh b/hints/riscos.sh
index e87e99ce14..2225f093cc 100644
--- a/hints/riscos.sh
+++ b/hints/riscos.sh
@@ -5,7 +5,7 @@
cc='gcc'
locincpth=""
-ccflags="-mpoke-function-name -DDYNAMIC_ENV_FETCH -DPERL_USE_SAFE_PUTENV"
+ccflags="-mpoke-function-name -DDYNAMIC_ENV_FETCH"
prefix='/<Perl$Dir>'
osname='riscos'
libpth=' '
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index e50d9d8323..21bfc8756e 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -694,21 +694,6 @@ EOM
esac
EOCBU
-#
-# If unsetenv is available, use it in conjunction with PERL_USE_SAFE_PUTENV to
-# work around Sun bugid 6333830. Both unsetenv and 6333830 only appear in
-# Solaris 10, so we don't need to probe explicitly for an OS version. We have
-# to append this test to the end of config.over as it needs to run after
-# Configure has probed for unsetenv, and this hints file is processed before
-# that has happened.
-#
-cat >> config.over <<'EOOVER'
-if test "$d_unsetenv" = "$define" -a \
- `expr "$ccflags" : '.*-DPERL_USE_SAFE_PUTENV'` -eq 0; then
- ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
-fi
-EOOVER
-
rm -f try.c try.o try a.out
# If using C++, the Configure scan for dlopen() will fail in Solaris