Wed Oct 21 14:23:14 2009 UTC ()
Update parrot from version 1.6.0 to 1.6.0nb1.
Pkgsrc changes:
o Enable shared libraries for NetBSD, and deal with the resulting
fallout: tests which are written in C need to point their run-path
to the build version of the shared libraries.
o The default is shared libs with .so, except for on Darwin, where
shared libs are named differently. The Darwin part is untested.
(he)
diff -r1.22 -r1.23 pkgsrc/lang/parrot/Makefile
diff -r1.16 -r1.17 pkgsrc/lang/parrot/distinfo
diff -r0 -r1.3 pkgsrc/lang/parrot/patches/patch-af
diff -r0 -r1.3 pkgsrc/lang/parrot/patches/patch-ag
diff -r0 -r1.1 pkgsrc/lang/parrot/patches/patch-ai
diff -r0 -r1.1 pkgsrc/lang/parrot/patches/patch-aj
--- pkgsrc/lang/parrot/Makefile 2009/09/20 10:57:04 1.22
+++ pkgsrc/lang/parrot/Makefile 2009/10/21 14:23:13 1.23
| @@ -1,17 +1,18 @@ | | | @@ -1,17 +1,18 @@ |
1 | # $NetBSD: Makefile,v 1.22 2009/09/20 10:57:04 he Exp $ | | 1 | # $NetBSD: Makefile,v 1.23 2009/10/21 14:23:13 he Exp $ |
2 | # | | 2 | # |
3 | | | 3 | |
4 | VERSION= 1.6.0 | | 4 | VERSION= 1.6.0 |
| | | 5 | PKGREVISION= 1 |
5 | RTYPE= devel | | 6 | RTYPE= devel |
6 | DISTNAME= parrot-${VERSION} | | 7 | DISTNAME= parrot-${VERSION} |
7 | CATEGORIES= lang | | 8 | CATEGORIES= lang |
8 | MASTER_SITES= ftp://ftp.parrot.org/pub/parrot/releases/${RTYPE}/${VERSION}/ | | 9 | MASTER_SITES= ftp://ftp.parrot.org/pub/parrot/releases/${RTYPE}/${VERSION}/ |
9 | | | 10 | |
10 | MAINTAINER= he@NetBSD.org | | 11 | MAINTAINER= he@NetBSD.org |
11 | HOMEPAGE= http://www.parrotcode.org/ | | 12 | HOMEPAGE= http://www.parrotcode.org/ |
12 | COMMENT= Virtual machine made to run Perl 6 and other languages | | 13 | COMMENT= Virtual machine made to run Perl 6 and other languages |
13 | LICENSE= artistic-2.0 | | 14 | LICENSE= artistic-2.0 |
14 | | | 15 | |
15 | PKG_DESTDIR_SUPPORT= user-destdir | | 16 | PKG_DESTDIR_SUPPORT= user-destdir |
16 | USE_LANGUAGES= c c++ | | 17 | USE_LANGUAGES= c c++ |
17 | USE_TOOLS+= perl | | 18 | USE_TOOLS+= perl |
| @@ -28,18 +29,27 @@ CONFIGURE_SCRIPT= Configure.pl | | | @@ -28,18 +29,27 @@ CONFIGURE_SCRIPT= Configure.pl |
28 | CONFIGURE_ARGS+= --prefix=${PREFIX:Q} \ | | 29 | CONFIGURE_ARGS+= --prefix=${PREFIX:Q} \ |
29 | --icu-config=${PREFIX}/bin/icu-config | | 30 | --icu-config=${PREFIX}/bin/icu-config |
30 | | | 31 | |
31 | SUBST_CLASSES+= pthread | | 32 | SUBST_CLASSES+= pthread |
32 | SUBST_STAGE.pthread= post-configure | | 33 | SUBST_STAGE.pthread= post-configure |
33 | SUBST_FILES.pthread= Makefile | | 34 | SUBST_FILES.pthread= Makefile |
34 | SUBST_SED.pthread= -e 's|-pthread||g' | | 35 | SUBST_SED.pthread= -e 's|-pthread||g' |
35 | SUBST_SED.pthread+= -e 's|-lpthread||g' | | 36 | SUBST_SED.pthread+= -e 's|-lpthread||g' |
36 | SUBST_SED.pthread+= -e 's|-lc_r||g' | | 37 | SUBST_SED.pthread+= -e 's|-lc_r||g' |
37 | SUBST_SED.pthread+= -e '/^CFLAGS /s|$$|${PTHREAD_CFLAGS:Q}|' | | 38 | SUBST_SED.pthread+= -e '/^CFLAGS /s|$$|${PTHREAD_CFLAGS:Q}|' |
38 | SUBST_SED.pthread+= -e '/^LINKFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|' | | 39 | SUBST_SED.pthread+= -e '/^LINKFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|' |
39 | SUBST_SED.pthread+= -e '/^LDFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|' | | 40 | SUBST_SED.pthread+= -e '/^LDFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|' |
40 | | | 41 | |
| | | 42 | PLIST_SUBST+= VERSION=${VERSION:Q} |
| | | 43 | PLIST_SRC+= ${PLIST_SRC_DFLT} |
| | | 44 | # Default this to ELF shared libs with .so, |
| | | 45 | # Darwin has PLIST.Darwin which gets included automatically. |
| | | 46 | .if (${OPSYS} != "Darwin") |
| | | 47 | PLIST_SRC+= PLIST.shared |
| | | 48 | .endif |
| | | 49 | |
| | | 50 | |
41 | pre-install: | | 51 | pre-install: |
42 | ${CHMOD} -R g-w ${WRKSRC} | | 52 | ${CHMOD} -R g-w ${WRKSRC} |
43 | | | 53 | |
44 | .include "../../textproc/icu/buildlink3.mk" | | 54 | .include "../../textproc/icu/buildlink3.mk" |
45 | .include "../../mk/bsd.pkg.mk" | | 55 | .include "../../mk/bsd.pkg.mk" |
--- pkgsrc/lang/parrot/distinfo 2009/09/20 10:57:04 1.16
+++ pkgsrc/lang/parrot/distinfo 2009/10/21 14:23:13 1.17
| @@ -1,7 +1,11 @@ | | | @@ -1,7 +1,11 @@ |
1 | $NetBSD: distinfo,v 1.16 2009/09/20 10:57:04 he Exp $ | | 1 | $NetBSD: distinfo,v 1.17 2009/10/21 14:23:13 he Exp $ |
2 | | | 2 | |
3 | SHA1 (parrot-1.6.0.tar.gz) = 2258c3a0da32ed8c1ce55ee460e81a841d06a2c1 | | 3 | SHA1 (parrot-1.6.0.tar.gz) = 2258c3a0da32ed8c1ce55ee460e81a841d06a2c1 |
4 | RMD160 (parrot-1.6.0.tar.gz) = ca5907643a9e972971daac51afd1b95a30103fa5 | | 4 | RMD160 (parrot-1.6.0.tar.gz) = ca5907643a9e972971daac51afd1b95a30103fa5 |
5 | Size (parrot-1.6.0.tar.gz) = 3977952 bytes | | 5 | Size (parrot-1.6.0.tar.gz) = 3977952 bytes |
6 | SHA1 (patch-ad) = 9002a7ca55f8f960bea669e383431b3eeb83a878 | | 6 | SHA1 (patch-ad) = 9002a7ca55f8f960bea669e383431b3eeb83a878 |
7 | SHA1 (patch-ae) = 72e4752112dab2f0b72ede5c45b77fd5b5554606 | | 7 | SHA1 (patch-ae) = 72e4752112dab2f0b72ede5c45b77fd5b5554606 |
| | | 8 | SHA1 (patch-af) = f2d67ac311aec9960a47b54eacdc8b72e83521eb |
| | | 9 | SHA1 (patch-ag) = 7a43d15e4e6fb76d4c4619affee4c3c8e0dd3444 |
| | | 10 | SHA1 (patch-ai) = 97c3fbff3b7868a07f76a40fa2651b9b737ff148 |
| | | 11 | SHA1 (patch-aj) = df1d64aa5a3b5f3ed7389a72a855baa14dc7df38 |
$NetBSD: patch-af,v 1.3 2009/10/21 14:23:13 he Exp $
Enable shared libraries on NetBSD.
--- config/init/hints/netbsd.pm (revision 41959)
+++ config/init/hints/netbsd.pm (working copy)
@@ -9,6 +9,9 @@
sub runstep {
my ( $self, $conf ) = @_;
+ my $share_ext = $conf->option_or_data('share_ext');
+ my $version = $conf->option_or_data('VERSION');
+
my $ccflags = $conf->data->get('ccflags');
if ( $ccflags !~ /-pthread\b/ ) {
$ccflags .= ' -pthread';
@@ -19,7 +22,16 @@
if ( $libs !~ /-lpthread\b/ ) {
$libs .= ' -lpthread';
}
- $conf->data->set( libs => $libs );
+ $conf->data->set(
+ libs => $libs,
+ rpath => '-Wl,-R',
+
+ has_dynamic_linking => 1,
+ parrot_is_shared => 1,
+ libparrot_shared => "libparrot$share_ext.$version",
+ libparrot_shared_alias => "libparrot$share_ext",
+ libparrot_soname => "-Wl,-soname=libparrot$share_ext.$version",
+ );
}
1;
$NetBSD: patch-ag,v 1.3 2009/10/21 14:23:13 he Exp $
This test now works in NetBSD, after we properly selected the libm
variant in the platform startup code.
--- t/op/trans.t (revision 41959)
+++ t/op/trans.t (working copy)
@@ -387,9 +387,6 @@
ok 16
OUTPUT
-TODO: {
-local $TODO = 'fails on netbsd' if $^O =~ /netbsd/;
-
pasm_output_is( <<"CODE", <<'OUTPUT', 'atan, part 2' );
.include 'fp_equality.pasm'
atan N4, -0.0, -0.0
@@ -402,8 +399,6 @@
ok 1
OUTPUT
-}
-
pasm_output_is( <<"CODE", <<OUTPUT, "log2" );
.include 'fp_equality.pasm'
set N1, 10.0
$NetBSD: patch-ai,v 1.1 2009/10/21 14:23:13 he Exp $
I beleive this test works for all relevant pkgsrc platforms.
It has been similarly transformed upstream after 1.7.0 was released.
--- t/op/io.t.orig 2008-12-18 06:19:20.000000000 +0100
+++ t/op/io.t
@@ -51,28 +51,9 @@ Tests various io opcodes.
ok(1, 'open with null mode')
.end
-.sub 'tt661_todo_test' :anon
- # Checks whether the platform is linux, MSWin32, darwin: on other
- # platforms, the following tests are todo'ed.
- .include 'sysinfo.pasm'
- $S0 = sysinfo .SYSINFO_PARROT_OS
- if $S0 == 'linux' goto tt661_ok
- if $S0 == 'MSWin32' goto tt661_ok
- if $S0 == 'darwin' goto tt661_ok
- if $S0 == 'openbsd' goto tt661_ok
-
- .return (0)
-
- tt661_ok:
- .return (1)
-.end
-
.include 'iglobals.pasm'
.sub 'open_pipe_for_reading'
- $I0 = tt661_todo_test()
- unless $I0 goto open_pipe_for_reading_todoed
-
.local pmc interp
interp = getinterp
@@ -103,15 +84,9 @@ Tests various io opcodes.
open_pipe_for_reading_failed:
nok(1, 'open pipe for reading')
.return ()
-
- open_pipe_for_reading_todoed:
- todo(1, 'Unimplemented in this platform, TT #661')
.end
.sub 'open_pipe_for_writing'
- $I0 = tt661_todo_test()
- unless $I0 goto open_pipe_for_writing_todoed
-
.local pmc interp
interp = getinterp
@@ -144,9 +119,6 @@ Tests various io opcodes.
open_pipe_for_writing_failed:
nok(1, 'open pipe for writing')
.return ()
-
- open_pipe_for_writing_todoed:
- todo(1, 'Unimplemented in this platform, TT #661')
.end
# Local Variables:
$NetBSD: patch-aj,v 1.1 2009/10/21 14:23:13 he Exp $
Make sure to use rpath if it's defined when linking C-language tests.
--- lib/Parrot/Test.pm.orig 2009-10-20 03:09:41.000000000 +0200
+++ lib/Parrot/Test.pm
@@ -1045,6 +1045,10 @@ sub _generate_test_functions {
. "$PConfig{ld_out}$exe_f "
. "$obj_f $cfg "
. "$PConfig{libparrot_linkflags} "
+ # If rpath is defined (and therefore rpath_blib), use it to get at the build libraries
+ . ( defined($PConfig{rpath_blib})
+ ? ( $PConfig{rpath_blib} . " " )
+ : "" )
. "$PConfig{linkflags} $PConfig{ld_debug} "
. "$iculibs $PConfig{libs}";
my $exit_code = run_command(