This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
bisect-runner.pl needs another minor fixup to build 5.004_05 on Linux.
authorNicholas Clark <nick@ccl4.org>
Thu, 10 May 2012 15:47:11 +0000 (17:47 +0200)
committerNicholas Clark <nick@ccl4.org>
Tue, 28 May 2013 07:19:28 +0000 (09:19 +0200)
bisect-runner.pl already reverts a sequence of commits to doio.c related to
special case handling of union semun on Linux and Solaris, which cause the
build to fail on current Linux. The last of these, 9b599b2a63d2324d is
described as "[win32] merge change#887 from maintbranch". However, it uses
__sun__ and __svr4__ instead of the __sun and __SVR4 of the maint branch
commit 6cdf74fe31f049dc. Hence the code in bisect-runner.pl needs to be
taught about this variation in the maint-5.004 branch, so that it can also
unwind the problematic code in doio.c there.

Porting/bisect-runner.pl

index 1f979a6..9627826 100755 (executable)
@@ -2635,7 +2635,22 @@ EOPATCH
     if ($major == 4 && $^O eq 'linux') {
         # Whilst this is fixed properly in f0784f6a4c3e45e1 which provides the
         # Configure probe, it's easier to back out the problematic changes made
-        # in these previous commits:
+        # in these previous commits.
+
+        # In maint-5.004, the simplest addition is to "correct" the file to
+        # use the same pre-processor macros as blead had used. Whilst commit
+        # 9b599b2a63d2324d (reverted below) is described as
+        # [win32] merge change#887 from maintbranch
+        # it uses __sun__ and __svr4__ instead of the __sun and __SVR4 of the
+        # maint branch commit 6cdf74fe31f049dc
+
+        edit_file('doio.c', sub {
+                      my $code = shift;
+                      $code =~ s{defined\(__sun\) && defined\(__SVR4\)}
+                                {defined(__sun__) && defined(__svr4__)}g;
+                      return $code;
+                  });
+
         if (extract_from_file('doio.c',
                               qr!^/\* XXX REALLY need metaconfig test \*/$!)) {
             revert_commit('4682965a1447ea44', 'doio.c');