summaryrefslogtreecommitdiff
path: root/gnu/usr.bin
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2003-03-17 17:44:07 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2003-03-17 17:44:07 +0000
commit5934993814e647644671dd601072bdd92890335a (patch)
tree8a4f3a9558e3e17980b8afb5dc8b5cc9cf75d509 /gnu/usr.bin
parentecd5022c27309af0cfc9b81169c46c39872faed8 (diff)
OpenBSD 3.3 has setreuid/setregid.
Diffstat (limited to 'gnu/usr.bin')
-rw-r--r--gnu/usr.bin/perl/hints/openbsd.sh28
1 files changed, 16 insertions, 12 deletions
diff --git a/gnu/usr.bin/perl/hints/openbsd.sh b/gnu/usr.bin/perl/hints/openbsd.sh
index ac2a49f384d..0032a183395 100644
--- a/gnu/usr.bin/perl/hints/openbsd.sh
+++ b/gnu/usr.bin/perl/hints/openbsd.sh
@@ -11,17 +11,23 @@
# OpenBSD has a better malloc than perl...
test "$usemymalloc" || usemymalloc='n'
-# Currently, vfork(2) is not a real win over fork(2) but this will
-# change starting with OpenBSD 2.7.
-usevfork='true'
+# Currently, vfork(2) is not a real win over fork(2).
+usevfork="$undef"
-# setre?[ug]id() have been replaced by the _POSIX_SAVED_IDS versions
-# in 4.4BSD. Configure will find these but they are just emulated
-# and do not have the same semantics as in 4.3BSD.
-d_setregid=$undef
-d_setreuid=$undef
-d_setrgid=$undef
-d_setruid=$undef
+# getservbyname_r() on OpenBSD is broken.
+d_getservbyname_r=$undef
+
+# In OpenBSD < 3.3, the setre?[ug]id() are emulated using the
+# _POSIX_SAVED_IDS functionality which does not have the same
+# semantics as 4.3BSD. Starting with OpenBSD 3.3, the original
+# semantics have been restored.
+case "$osvers" in
+[0-2].*|3.[0-2])
+ d_setregid=$undef
+ d_setreuid=$undef
+ d_setrgid=$undef
+ d_setruid=$undef
+esac
#
# Not all platforms support dynamic loading...
@@ -101,8 +107,6 @@ $define|true|[yY]*)
# any openbsd version dependencies with pthreads?
ccflags="-pthread $ccflags"
ldflags="-pthread $ldflags"
- # This is strange.
- usevfork="$undef"
esac
EOCBU