[svn:parrot] r41849 - in branches/auto_libjit: config/auto lib/Parrot/Configure/Step

jkeenan at svn.parrot.org jkeenan at svn.parrot.org
Wed Oct 14 02:10:51 UTC 2009


Author: jkeenan
Date: Wed Oct 14 02:10:42 2009
New Revision: 41849
URL: https://trac.parrot.org/parrot/changeset/41849

Log:
1.  Following suggestion by Andy Dougherty++, reworked config/auto/libjit.pm
so failure of C probes to detect libjit does not cause step to die.  Rather,
it simply says libjit is not found.
2.  Move auto::libjit to just before auto::jit.

Modified:
   branches/auto_libjit/config/auto/libjit.pm
   branches/auto_libjit/lib/Parrot/Configure/Step/List.pm

Modified: branches/auto_libjit/config/auto/libjit.pm
==============================================================================
--- branches/auto_libjit/config/auto/libjit.pm	Wed Oct 14 01:44:19 2009	(r41848)
+++ branches/auto_libjit/config/auto/libjit.pm	Wed Oct 14 02:10:42 2009	(r41849)
@@ -44,22 +44,36 @@
         return 1;
     }
 
-    my $extra_libs = $self->_select_lib({
+    my $extra_libs = $self->_select_lib( {
         conf         => $conf,
         osname       => $conf->data->get_p5('OSNAME'),
         cc           => $conf->data->get('cc'),
         win32_nongcc => 'libjit.lib',
         default      => '-ljit',
-    });
+    } );
+    my $has_libjit = 0;
 
     $conf->cc_gen('config/auto/libjit/libjit_c.in');
-    eval {$conf->cc_build('', $extra_libs)};
-    my $has_libjit = 0;
-    if (!$@) {
-        my $test = $conf->cc_run();
-        $has_libjit = $self->_evaluate_cc_run($conf, $test, $has_libjit, $verbose);
-    } else {
-        die $@;
+    eval { $conf->cc_build('', $extra_libs) };
+    if ($@) {
+        print "cc_build() failed: $@\n" if $verbose;
+        $conf->data->set( HAS_LIBJIT => 0 );
+        $self->set_result('no');
+        return 1;
+    }
+    else {
+        my $test;
+        eval { $test = $conf->cc_run(); };
+        if ($@) {
+            print "cc_run() failed: $@\n" if $verbose;
+            $conf->data->set( HAS_LIBJIT => 0 );
+            $self->set_result('no');
+            return 1;
+        }
+        else {
+            $has_libjit =
+                $self->_evaluate_cc_run($conf, $test, $has_libjit, $verbose);
+        }
     }
 
     $conf->data->set( HAS_LIBJIT => $has_libjit );

Modified: branches/auto_libjit/lib/Parrot/Configure/Step/List.pm
==============================================================================
--- branches/auto_libjit/lib/Parrot/Configure/Step/List.pm	Wed Oct 14 01:44:19 2009	(r41848)
+++ branches/auto_libjit/lib/Parrot/Configure/Step/List.pm	Wed Oct 14 02:10:42 2009	(r41849)
@@ -39,6 +39,7 @@
     auto::format
     auto::isreg
     auto::arch
+    auto::libjit
     auto::jit
     auto::frames
     auto::cpu
@@ -64,7 +65,6 @@
     auto::ctags
     auto::revision
     auto::icu
-    auto::libjit
     gen::config_h
     gen::core_pmcs
     gen::crypto


More information about the parrot-commits mailing list