From 5a10bac1385eb8cee9f520f39d7f8d05fcb4cb4b Mon Sep 17 00:00:00 2001 From: jlam Date: Wed, 8 Jun 2005 08:42:33 +0000 Subject: 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. --- lang/perl58/distinfo | 3 ++- lang/perl58/patches/patch-cl | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 lang/perl58/patches/patch-cl (limited to 'lang/perl58') 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)); -- cgit v1.2.3