Parrot on OpenBSD

Pascal Stumpf Pascal.Stumpf at cubes.de
Fri Mar 4 16:20:03 UTC 2011


Howdy!

I've been porting parrot 3.0.0 to OpenBSD. Build and regression test
work fine on amd64, i386 and macppc, but a few tests fail on sparc64:

http://rhaalovely.net/~landry/stuff/parrot-3.0.0-sparc64-regress
(thanks to Landry Breuil for providing that log)

The patches I had to apply were:
- An old patch to prevent linking with -lpthread
- One to fix the detection of perldoc
- One to fix building POD documentation as root (building ports is
  traditionally done as root).
Other than that, only patches required to customise the shared library
version.

Cheers,
Pascal
-------------- next part --------------
$OpenBSD$
--- config/auto/perldoc.pm.orig	Fri Mar  4 15:06:37 2011
+++ config/auto/perldoc.pm	Fri Mar  4 15:06:53 2011
@@ -38,7 +38,7 @@ sub runstep {
     my $slash = $conf->data->get('slash');
     my $cmd = $conf->data->get('scriptdirexp_provisional') . $slash . q{perldoc};
     my ( $fh, $filename ) = tempfile( UNLINK => 1 );
-    my $content = capture_output("$cmd -ud $filename perldoc") || undef;
+    my $content = capture_output("$cmd -ud $filename perldoc") || '';
 
     return 1 unless defined( $self->_initial_content_check($conf, $content) );
 
-------------- next part --------------
$OpenBSD$
--- config/gen/makefiles/docs.in.orig	Fri Mar  4 15:25:03 2011
+++ config/gen/makefiles/docs.in	Fri Mar  4 15:25:55 2011
@@ -43,6 +43,7 @@ $(POD): doc-prep
 doc-prep:
 	$(MKPATH) ops
 	$(TOUCH) doc-prep
+	chown nobody ops
 
 packfile-c.pod: ../src/packfile/api.c
 #IF(new_perldoc):	$(PERLDOC_BIN) -ud packfile-c.pod ../src/packfile/api.c
-------------- next part --------------
$OpenBSD$
--- config/init/hints/openbsd.pm.orig	Thu Jan  6 04:44:55 2011
+++ config/init/hints/openbsd.pm	Tue Feb  8 15:17:00 2011
@@ -17,10 +17,15 @@ sub runstep {
     $conf->data->set( ccflags => $ccflags );
 
     my $libs = $conf->data->get('libs');
+
+=for comment
+
     if ( $libs !~ /-lpthread\b/ ) {
         $libs .= ' -lpthread';
     }
 
+=cut
+
     my $ldflags = $conf->data->get('ldflags');
     if ( $ldflags !~ m|-L/usr/local/lib\b| ) {
         $ldflags .= ' -L/usr/local/lib';
@@ -34,9 +39,9 @@ sub runstep {
 
         has_dynamic_linking    => 1,
         parrot_is_shared       => 1,
-        libparrot_shared       => "libparrot$share_ext.$version",
+        libparrot_shared       => "libparrot$share_ext.$ENV{LIBparrot_VERSION}",
         libparrot_shared_alias => "libparrot$share_ext",
-        libparrot_soname       => "-Wl,-soname=libparrot$share_ext.$version",
+        libparrot_soname       => "",
     );
 
     if ( ( split( m/-/, $conf->data->get('archname_provisional'), 2 ) )[0] eq 'powerpc' ) {


More information about the parrot-dev mailing list