pintos: Avoid apparent name collision in definition of SIGALRM subroutine.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 9 Feb 2016 04:48:37 +0000 (20:48 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 9 Feb 2016 04:48:37 +0000 (20:48 -0800)
Without this patch, modern versions of Perl issue the following warnings:

    Prototype mismatch: sub main::SIGVTALRM () vs none at
    .../src/utils/pintos line 188.
    Constant subroutine SIGVTALRM redefined at
    .../src/utils/pintos line 180.

Changing the name of the function avoids the warning.

Thanks to Geoffrey Knopf for reporting this problem.

src/utils/pintos

index 2ebe642a5d1de310121d7f9acb2989cabb181b84..e460866719588afb40838e9fead814bc14abfeea 100755 (executable)
@@ -853,7 +853,7 @@ sub xsystem {
        alarm (0);
        &$cleanup ();
 
-       if (WIFSIGNALED ($?) && WTERMSIG ($?) == SIGVTALRM ()) {
+       if (WIFSIGNALED ($?) && WTERMSIG ($?) == SIGVTALRM_number ()) {
            seek (STDOUT, 0, 2);
            print "\nTIMEOUT after $timeout seconds of host CPU time\n";
            exit 0;
@@ -928,7 +928,7 @@ sub exec_setitimer {
     exit (1);
 }
 
-sub SIGVTALRM {
+sub SIGVTALRM_number {
     use Config;
     my $i = 0;
     foreach my $name (split(' ', $Config{sig_name})) {