summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2005-06-08 08:42:33 +0000
committerjlam <jlam@pkgsrc.org>2005-06-08 08:42:33 +0000
commit5a10bac1385eb8cee9f520f39d7f8d05fcb4cb4b (patch)
tree1e0481b2e7d850fe05b252e7947f1b34be9ea60b /lang
parent2499370d92471305b075491c8060f4fe0588aa7b (diff)
downloadpkgsrc-5a10bac1385eb8cee9f520f39d7f8d05fcb4cb4b.tar.gz
SDBM_File/sdbm/sdbm.h explicitly doesn't include perl.h, but fails to
handle errno in the same way that perl.h does. The workaround in sdbm.c for the mishandling of errno that redeclares errno if WIN32 and sun are not defined is not correct, as it ends up redeclaring errno on just about every platform. Modify sdbm.c so that it uses the same method of handling errno as perl.h for the sake of consistency. This fixes PR pkg/30308.
Diffstat (limited to 'lang')
-rw-r--r--lang/perl58/distinfo3
-rw-r--r--lang/perl58/patches/patch-cl21
2 files changed, 23 insertions, 1 deletions
diff --git a/lang/perl58/distinfo b/lang/perl58/distinfo
index 18331338512..fe0080f25df 100644
--- a/lang/perl58/distinfo
+++ b/lang/perl58/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.32 2005/03/19 11:56:39 kleink Exp $
+$NetBSD: distinfo,v 1.33 2005/06/08 08:42:33 jlam Exp $
SHA1 (perl-5.8.6.tar.bz2) = 5267c5b4900a995a10e4fc56fe10a6852004c29b
RMD160 (perl-5.8.6.tar.bz2) = 52fdee3caecf67417a9c081b7aae84807235cb27
@@ -21,4 +21,5 @@ SHA1 (patch-ch) = 6cfd77bba102a4bca82576f061ba60c1610c4d07
SHA1 (patch-ci) = 89bc6e67b18ca903cb3791fd598fd579bc48298b
SHA1 (patch-cj) = 680b7161d7530825376b9d5c108fc01f15768e5e
SHA1 (patch-ck) = 28207b8186c9ad194a1edc696159915bc16d1097
+SHA1 (patch-cl) = 8553c83e721f5ae43a5f6e0e4d2b70510b69e77c
SHA1 (patch-zc) = eb81edd1144ec46285898afc641c03a3aad54977
diff --git a/lang/perl58/patches/patch-cl b/lang/perl58/patches/patch-cl
new file mode 100644
index 00000000000..55ea52978ac
--- /dev/null
+++ b/lang/perl58/patches/patch-cl
@@ -0,0 +1,21 @@
+$NetBSD: patch-cl,v 1.1 2005/06/08 08:42:33 jlam Exp $
+
+--- ext/SDBM_File/sdbm/sdbm.c.orig 2003-08-27 06:30:22.000000000 -0400
++++ ext/SDBM_File/sdbm/sdbm.c
+@@ -34,10 +34,12 @@
+ /*
+ * externals
+ */
+-#ifndef WIN32
+-#ifndef sun
+-extern int errno;
+-#endif
++#ifndef errno
++ extern int errno; /* ANSI allows errno to be an lvalue expr.
++ * For example in multithreaded environments
++ * something like this might happen:
++ * extern int *_errno(void);
++ * #define errno (*_errno()) */
+ #endif
+
+ extern Malloc_t malloc proto((MEM_SIZE));