[libmarpa-r2-perl] 18/32: Work on dynamic loader, esp. error messages

Jonas Smedegaard dr at jones.dk
Sat Nov 22 18:38:38 UTC 2014


This is an automated email from the git hooks/post-receive script.

js pushed a commit to annotated tag Marpa-R2-2.087_000
in repository libmarpa-r2-perl.

commit f4867fd08e8b57c32559217a09e8f9792a4dac63
Author: Jeffrey Kegler <JKEGL at cpan.org>
Date:   Fri Jul 4 23:40:07 2014 -0700

    Work on dynamic loader, esp. error messages
---
 cpan/Build.PL                 |  3 +--
 cpan/inc/Marpa/R2/Build_Me.pm | 26 +++++++++-----------------
 cpan/lib/Marpa/R2.pm          |  8 +++++---
 cpan/t/00-load.t              |  6 ++++--
 4 files changed, 19 insertions(+), 24 deletions(-)

diff --git a/cpan/Build.PL b/cpan/Build.PL
index 7af8c78..2ec9c7f 100644
--- a/cpan/Build.PL
+++ b/cpan/Build.PL
@@ -134,8 +134,7 @@ my @no_index_namespace_inclusive = qw(
 my @files_to_cleanup = (
     'lib/Marpa/R2/Version.pm',   'pperl/Marpa/R2/Perl/Version.pm',
     'lib/Marpa/R2/Installed.pm', 'pperl/Marpa/R2/Perl/Installed.pm',
-    'lib/Marpa/R2.o',            'libmarpa_build',
-    'libmarpa_shared'
+    'lib/Marpa/R2.o',            'libmarpa_build'
 );
 
 my $build = Marpa::R2::Build_Me->new(
diff --git a/cpan/inc/Marpa/R2/Build_Me.pm b/cpan/inc/Marpa/R2/Build_Me.pm
index e1dbccf..3c3e35a 100644
--- a/cpan/inc/Marpa/R2/Build_Me.pm
+++ b/cpan/inc/Marpa/R2/Build_Me.pm
@@ -229,11 +229,7 @@ sub process_xs {
     $self->add_to_cleanup( $spec->{c_file} );
 
     my @libmarpa_build_dir = File::Spec->splitdir( $self->base_dir );
-    push @libmarpa_build_dir,
-        (
-        defined $self->args('libmarpa-shared')
-        ? 'libmarpa_shared'
-        : 'libmarpa_build' );
+    push @libmarpa_build_dir, 'libmarpa_build' ;
     my $libmarpa_build_dir = File::Spec->catdir(@libmarpa_build_dir);
 
     my @xs_dependencies = ( 'typemap', 'Build', $xs_file, $dest_gp_xsh );
@@ -282,14 +278,13 @@ sub process_xs {
         if not -d $spec->{archdir};
 
     my @extra_linker_flags = ();
-    my $libmarpa_build_directory = File::Spec->catdir(
-        $self->base_dir(),
-        (   defined $self->args('libmarpa-shared')
-            ? 'libmarpa_shared'
-            : 'libmarpa_build'
-        )
-    );
+    my $libmarpa_build_directory =
+        File::Spec->catdir( $self->base_dir(), 'libmarpa_build' );
 
+    if ( defined $self->args('libmarpa-external') ) {
+        my $libmarpa_external_flags = $self->args('libmarpa-external'); 
+        push @extra_linker_flags, split q{ }, $libmarpa_external_flags;
+    } else
     {
         my $libmarpa_archive;
         FIND_LIBRARY: {
@@ -307,7 +302,7 @@ sub process_xs {
                 File::Spec->catfile( $libmarpa_libs_dir, 'libmarpa.a' );
         } ## end FIND_LIBRARY:
         push @{ $self->{properties}->{objects} }, $libmarpa_archive;
-    } ## end else [ if ( defined $self->args('libmarpa-shared') ) ]
+    }
 
     # .xs -> .bs
     $self->add_to_cleanup( $spec->{bs_file} );
@@ -583,9 +578,6 @@ INLINEHOOK
             my $linktype = 'static';
             my $blib = 'blib';
             my $name = 'libmarpa';
-            if (defined $self->args('libmarpa-shared')) {
-                $linktype = 'dynamic';
-            }
             print {$makefile_pl_fh} "
 use ExtUtils::MakeMaker;
 WriteMakefile(VERSION        => \"$libmarpa_version\",
@@ -799,7 +791,7 @@ sub ACTION_code {
     } ## end if ( not $self->up_to_date( [ $config_pm_filename, ...]))
 
     # If it's a shared library, we don't build it here.
-    if ( not defined $self->args('libmarpa-shared') ) {
+    if ( not defined $self->args('libmarpa-external') ) {
         $self->do_libmarpa();
     }
 
diff --git a/cpan/lib/Marpa/R2.pm b/cpan/lib/Marpa/R2.pm
index e60d4e2..595633b 100644
--- a/cpan/lib/Marpa/R2.pm
+++ b/cpan/lib/Marpa/R2.pm
@@ -80,13 +80,15 @@ eval {
     require XSLoader;
     XSLoader::load( 'Marpa::R2', $Marpa::R2::STRING_VERSION );
     1;
-} or eval {
+} or do {
+    say STDERR "XSLoader problem: ", $EVAL_ERROR;
+    say STDERR "Trying DynaLaoder";
     require DynaLoader;
 ## no critic(ClassHierarchies::ProhibitExplicitISA)
     push @ISA, 'DynaLoader';
     Dynaloader::bootstrap Marpa::R2 $Marpa::R2::STRING_VERSION;
-    1;
-} or Carp::croak("Could not load XS version of Marpa::R2: $EVAL_ERROR");
+};
+# or Carp::croak("Could not load XS version of Marpa::R2: $EVAL_ERROR");
 
 
 if ( not $ENV{'MARPA_AUTHOR_TEST'} ) {
diff --git a/cpan/t/00-load.t b/cpan/t/00-load.t
index e681460..8dbaf2e 100644
--- a/cpan/t/00-load.t
+++ b/cpan/t/00-load.t
@@ -21,8 +21,10 @@ use English qw( -no_match_vars );
 
 use Test::More tests => 4;
 
-my $ok = eval { require Marpa::R2; 1; };
-Test::More::BAIL_OUT('Could not load Marpa::R2') if not $ok;
+if (not eval { require Marpa::R2; 1; }) {
+    Test::More::diag($EVAL_ERROR);
+    Test::More::BAIL_OUT('Could not load Marpa::R2');
+}
 
 my $marpa_version_ok = defined $Marpa::R2::VERSION;
 my $marpa_version_desc =

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmarpa-r2-perl.git



More information about the Pkg-perl-cvs-commits mailing list