remove code for non-core builds and "modernize"
authorTony Cook <tony@develop-help.com>
Sat, 13 Apr 2013 05:05:33 +0000 (15:05 +1000)
committerNicholas Clark <nick@ccl4.org>
Fri, 3 May 2013 11:35:17 +0000 (13:35 +0200)
t/porting/extrefs.t

index 50f5847..144a656 100644 (file)
 # You added an initializer or static function to a header file that
 # references some symbol you didn't define, you need to remove it.
 
-use strict;
-use warnings;
-
 BEGIN {
   require "./test.pl";
   unshift @INC, ".." if -f "../TestInit.pm";
 }
 
 use TestInit qw(T A); # T is chdir to the top level, A makes paths absolute
+use strict;
+use warnings;
 use Config;
 use File::Path 'rmtree';
 use Cwd;
@@ -44,11 +43,10 @@ CODE
 sub try_compile_and_link {
     my ($c, %args) = @_;
 
-    my $LIBS = [];
     my $ld_exeext = ($^O eq 'cygwin' ||
                  $^O eq 'os2' && $Config{ldflags} =~ /-Zexe\b/) ? '.exe' :
                 (($^O eq 'vos') ? $Config{exe_ext} : '');
-    my $VERBOSE = 1;
+    my $VERBOSE = 0;
 
     my ($ok) = 0;
     my $tempdir = tempfile();
@@ -56,69 +54,41 @@ sub try_compile_and_link {
     mkdir $tempdir;
     chdir $tempdir;
     my ($tmp) = "temp";
-    local(*TMPC);
 
     my $obj_ext = $Config{obj_ext} || ".o";
-    unlink("$tmp.c", "$tmp$obj_ext");
-
-    if (open(TMPC, ">$tmp.c")) {
-       print TMPC $c;
-       close(TMPC);
-
-       my $cccmd = $args{cccmd};
-
-       my $errornull;
-
-       my $COREincdir;
 
-       if ($ENV{PERL_CORE}) {
-           my $updir = File::Spec->updir;
-           $COREincdir = File::Spec->catdir($updir);
-       } else {
-           $COREincdir = File::Spec->catdir($Config{'archlibexp'}, 'CORE');
+    if (open(my $tmpc, ">$tmp.c")) {
+       print $tmpc $c;
+       unless (close($tmpc)) {
+           chdir($cwd);
+           rmtree($tempdir);
+           warn "Failing closing code file: $!\n" if $VERBOSE;
+           return 0;
        }
 
-       if ($ENV{PERL_CORE}) {
-           unless (-f File::Spec->catfile($COREincdir, "EXTERN.h")) {
-               chdir($cwd);
-               rmtree($tempdir);
-               die <<__EOD__;
-Your environment variable PERL_CORE is '$ENV{PERL_CORE}' but there
-is no EXTERN.h in $COREincdir.
-Cannot continue, aborting.
-__EOD__
-            }
-        }
+       my $COREincdir = File::Spec->catdir(File::Spec->updir);
 
        my $ccflags = $Config{'ccflags'} . ' ' . "-I$COREincdir"
         . ' -DPERL_NO_INLINE_FUNCTIONS';
 
+       my $errornull = $VERBOSE ? '' : "2>/dev/null";
+
+        my $cccmd = "$Config{'cc'} -o $tmp $ccflags $tmp.c $errornull";
+
        if ($^O eq 'VMS') {
             $cccmd = "$Config{'cc'} /include=($COREincdir) $tmp.c";
         }
 
-        if ($args{silent} || !$VERBOSE) {
-           $errornull = "2>/dev/null" unless defined $errornull;
-       } else {
-           $errornull = '';
-       }
-
-        $cccmd = "$Config{'cc'} -o $tmp $ccflags $tmp.c @$LIBS $errornull"
-           unless defined $cccmd;
-
        if ($^O eq 'VMS') {
-           open( CMDFILE, ">$tmp.com" );
-           print CMDFILE "\$ SET MESSAGE/NOFACILITY/NOSEVERITY/NOIDENT/NOTEXT\n";
-           print CMDFILE "\$ $cccmd\n";
-           print CMDFILE "\$ IF \$SEVERITY .NE. 1 THEN EXIT 44\n"; # escalate
-           close CMDFILE;
+           open( my $cmdfile, ">$tmp.com" );
+           print $cmdfile "\$ SET MESSAGE/NOFACILITY/NOSEVERITY/NOIDENT/NOTEXT\n";
+           print $cmdfile "\$ $cccmd\n";
+           print $cmdfile "\$ IF \$SEVERITY .NE. 1 THEN EXIT 44\n"; # escalate
+           close $cmdfile;
            system("\@ $tmp.com");
            $ok = $?==0;
            chdir($cwd);
            rmtree($tempdir);
-           #for ("$tmp.c", "$tmp$obj_ext", "$tmp.com", "$tmp$Config{exe_ext}") {
-               #1 while unlink $_;
-           #}
         }
         else
         {
@@ -127,27 +97,8 @@ __EOD__
            my $res = system($cccmd);
            $ok = defined($res) && $res == 0 && -s $tmp_exe && -x _;
 
-           if ( $ok && exists $args{run} && $args{run}) {
-               my $tmp_exe =
-                   File::Spec->catfile(File::Spec->curdir, $tmp_exe);
-               printf "Running $tmp_exe..." if $VERBOSE;
-               if (system($tmp_exe) == 0) {
-                   $ok = 1;
-               } else {
-                   $ok = 0;
-                   my $errno = $? >> 8;
-                   local $! = $errno;
-                   printf <<EOF;
-
-*** The test run of '$tmp_exe' failed: status $?
-*** (the status means: errno = $errno or '$!')
-*** DO NOT PANIC: this just means that *some* functionality will be missing.
-EOF
-               }
-           }
            chdir($cwd);
            rmtree($tempdir);
-           #unlink("$tmp.c", $tmp_exe);
         }
     }