Skip the test if in linux but not in x86*.
authorJarkko Hietaniemi <jhi@iki.fi>
Tue, 7 Oct 2014 06:49:02 +0000 (08:49 +0200)
committerJarkko Hietaniemi <jhi@iki.fi>
Tue, 7 Oct 2014 18:16:46 +0000 (20:16 +0200)
The state of things found by Ă†var in ppc linux was even weirder:
most -- but not all! -- text symbols were in D section, not in T.

Skipping is fine since we are here after best-effort testing,
failing softly is quite acceptable.

t/porting/libperl.t

index 550a97b..0e0296e 100644 (file)
@@ -4,7 +4,7 @@
 # symbols we expect, and no symbols we should avoid.
 #
 # Fail softly, expect things only on known platforms:
-# - linux
+# - linux, x86 only (ppc linux has odd symbol tables)
 # - darwin (OS X), both x86 and ppc
 # - freebsd
 # and on other platforms, and if things seem odd, just give up (skip_all).
@@ -66,6 +66,7 @@ unless (defined $libperl_a) {
 }
 
 print "# \$^O = $^O\n";
+print "# \$Config{archname} = $Config{archname}\n";
 print "# \$Config{cc} = $Config{cc}\n";
 print "# libperl = $libperl_a\n";
 
@@ -128,6 +129,12 @@ if (defined $nm_style) {
     }
 }
 
+if ($^O eq 'linux' && $Config{archname} !~ /^x86/) {
+    # For example in ppc most (but not all!) code symbols are placed
+    # in 'D' (data), not in ' T '.  We cannot work under such conditions.
+    skip_all "linux but archname $Config{archname} not x86*";
+}
+
 unless (defined $nm) {
   skip_all "no nm";
 }