From 1ee87e5dfc51195b088842e00c00c39e06ea21ab Mon Sep 17 00:00:00 2001 From: he Date: Fri, 23 Apr 2010 14:08:17 +0000 Subject: 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 --- lang/parrot/patches/patch-ak | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'lang/parrot/patches') 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 { @@ -74,25 +73,26 @@ Index: config/gen/platform/generic/dl.c + } +} +#endif /* PARROT_HAS_HEADER_DLFCN */ -+ + /* - =item C -@@ -39,7 +97,11 @@ void * - Parrot_dlopen(const char *filename) + =item C +@@ -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 -- cgit v1.2.3