summaryrefslogtreecommitdiff
path: root/lang/parrot/patches
diff options
context:
space:
mode:
authorhe <he>2010-04-23 14:08:17 +0000
committerhe <he>2010-04-23 14:08:17 +0000
commit1ee87e5dfc51195b088842e00c00c39e06ea21ab (patch)
treebb60db6819cf17d34e037ad40d2648cf8cf036f2 /lang/parrot/patches
parentb052ce6e4002df6064f79e8bd4777070b0f6130b (diff)
downloadpkgsrc-1ee87e5dfc51195b088842e00c00c39e06ea21ab.tar.gz
Update parrot from version 2.2.0 to 2.3.0.
Pkgsrc changes: o Adapt our patches to up-stream changes. o Fix PLIST to match what's being installed. Upstream changes: - Core + Allow passing parameters to the dynamic linker ('dlopen' improved) + loadlib opcode added + Calling conventions are now much more consistent, and follows natural semantics of handling arguments and return values + Recursive make for src/dynpmc removed + Datatype STRINGNULL for a single Null STRING added + config_lib.pasm replaced with config_lib.pir - Platforms + Improved handling of new compilers + Cygwin packages will be updated again with Parrot releases + Fedora packages add desktop files + gzip and bzip2 compressed tar files for releases - Tools + tapir executable added; tapir is a TAP test harness + Added TAP options --merge --ignore-exit - Miscellaneous + 3 month cycle for supported releases + Review and vote of GSoC applications
Diffstat (limited to 'lang/parrot/patches')
-rw-r--r--lang/parrot/patches/patch-ak22
1 files changed, 11 insertions, 11 deletions
diff --git a/lang/parrot/patches/patch-ak b/lang/parrot/patches/patch-ak
index 65e5dd4df7d..a442819cfc4 100644
--- a/lang/parrot/patches/patch-ak
+++ b/lang/parrot/patches/patch-ak
@@ -1,13 +1,11 @@
-$NetBSD: patch-ak,v 1.2 2010/02/18 07:59:38 he Exp $
+$NetBSD: patch-ak,v 1.3 2010/04/23 14:08:17 he Exp $
Prevent problem exposed by "library cloning", where the dlopen()-returned
handle is copied, causing dlclose() to be called twice with the same handle,
which in turn triggers a warning from ld.elf_so on NetBSD. Ref.
http://trac.parrot.org/parrot/ticket/1340.
-Index: config/gen/platform/generic/dl.c
-===================================================================
---- config/gen/platform/generic/dl.c.orig 2009-12-12 01:16:58.000000000 +0100
+--- config/gen/platform/generic/dl.c.orig 2010-03-22 13:39:23.000000000 +0100
+++ config/gen/platform/generic/dl.c
@@ -22,11 +22,69 @@ Dynlib stuff
*/
@@ -20,6 +18,7 @@ Index: config/gen/platform/generic/dl.c
#define PARROT_DLOPEN_FLAGS RTLD_LAZY
++
+#ifdef PARROT_HAS_HEADER_DLFCN
+
+struct handle_entry {
@@ -75,24 +74,25 @@ Index: config/gen/platform/generic/dl.c
+}
+#endif /* PARROT_HAS_HEADER_DLFCN */
+
-+
/*
- =item C<void * Parrot_dlopen(const char *filename)>
-@@ -39,7 +97,11 @@ void *
- Parrot_dlopen(const char *filename)
+ =item C<void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)>
+@@ -39,8 +97,12 @@ void *
+ Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)
{
#ifdef PARROT_HAS_HEADER_DLFCN
-- return dlopen(filename, PARROT_DLOPEN_FLAGS);
+- return dlopen(filename, PARROT_DLOPEN_FLAGS
+- | ((flags & Parrot_dlopen_global_FLAG) ? RTLD_GLOBAL : 0));
+ void *h;
+
-+ h = dlopen(filename, PARROT_DLOPEN_FLAGS);
++ h = dlopen(filename, PARROT_DLOPEN_FLAGS
++ | ((flags & Parrot_dlopen_global_FLAG) ? RTLD_GLOBAL : 0));
+ push_handle_entry(h);
+ return h;
#else
return 0;
#endif
-@@ -93,10 +155,15 @@ int
+@@ -94,10 +156,15 @@ int
Parrot_dlclose(void *handle)
{
#ifdef PARROT_HAS_HEADER_DLFCN