summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/ChangeLog3
-rw-r--r--backends/alpha_init.c1
-rw-r--r--backends/alpha_symbol.c10
-rw-r--r--tests/ChangeLog6
-rwxr-xr-xtests/run-allregs.sh71
-rwxr-xr-xtests/run-elflint-self.sh5
6 files changed, 94 insertions, 2 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog
index 9bbd6bf9..e962de95 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,5 +1,8 @@
2007-04-26 Roland McGrath <roland@redhat.com>
+ * alpha_symbol.c (alpha_machine_section_flag_check): New function.
+ * alpha_init.c (alpha_init): Initialize hook.
+
* alpha_regs.c: New file.
* Makefile.am (alpha_SRCS): Add it.
* alpha_init.c (alpha_init): Initialize register_info hook.
diff --git a/backends/alpha_init.c b/backends/alpha_init.c
index 3570af70..ba5ca12f 100644
--- a/backends/alpha_init.c
+++ b/backends/alpha_init.c
@@ -55,6 +55,7 @@ alpha_init (elf, machine, eh, ehlen)
HOOK (eh, reloc_simple_type);
HOOK (eh, return_value_location);
HOOK (eh, register_info);
+ HOOK (eh, machine_section_flag_check);
eh->sysvhash_entrysize = sizeof (Elf64_Xword);
return MODVERSION;
diff --git a/backends/alpha_symbol.c b/backends/alpha_symbol.c
index ca93e2a8..dc3cce56 100644
--- a/backends/alpha_symbol.c
+++ b/backends/alpha_symbol.c
@@ -1,5 +1,5 @@
/* Alpha specific symbolic name handling.
- Copyright (C) 2002, 2005 Red Hat, Inc.
+ Copyright (C) 2002, 2005, 2007 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -69,3 +69,11 @@ alpha_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type)
return ELF_T_NUM;
}
}
+
+
+/* Check whether SHF_MASKPROC flags are valid. */
+bool
+alpha_machine_section_flag_check (GElf_Xword sh_flags)
+{
+ return (sh_flags &~ (SHF_ALPHA_GPREL)) == 0;
+}
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 7d1f82fd..89fbab7c 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-26 Roland McGrath <roland@redhat.com>
+
+ * run-elflint-self.sh: Run all tests even if one fails.
+
+ * run-allregs.sh: Add expected output for alpha.
+
2007-04-24 Roland McGrath <roland@redhat.com>
* run-strip-test.sh: When we saved the debug info, test unstrip too.
diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh
index a12e5c5e..af69ac69 100755
--- a/tests/run-allregs.sh
+++ b/tests/run-allregs.sh
@@ -2519,4 +2519,75 @@ control registers:
85: %y (y), unsigned 64 bits
EOF
+regs_test testfile10 <<\EOF
+integer registers:
+ 0: $v0 (v0), signed 64 bits
+ 1: $t0 (t0), signed 64 bits
+ 2: $t1 (t1), signed 64 bits
+ 3: $t2 (t2), signed 64 bits
+ 4: $t3 (t3), signed 64 bits
+ 5: $t4 (t4), signed 64 bits
+ 6: $t5 (t5), signed 64 bits
+ 7: $t6 (t6), signed 64 bits
+ 8: $t7 (t7), signed 64 bits
+ 9: $s0 (s0), signed 64 bits
+ 10: $s1 (s1), signed 64 bits
+ 11: $s2 (s2), signed 64 bits
+ 12: $s3 (s3), signed 64 bits
+ 13: $s4 (s4), signed 64 bits
+ 14: $s5 (s5), signed 64 bits
+ 15: $fp (fp), address 64 bits
+ 16: $a0 (a0), signed 64 bits
+ 17: $a1 (a1), signed 64 bits
+ 18: $a2 (a2), signed 64 bits
+ 19: $a3 (a3), signed 64 bits
+ 20: $a4 (a4), signed 64 bits
+ 21: $a5 (a5), signed 64 bits
+ 22: $t8 (t8), signed 64 bits
+ 23: $t9 (t9), signed 64 bits
+ 24: $t10 (t10), signed 64 bits
+ 25: $t11 (t11), signed 64 bits
+ 26: $ra (ra), address 64 bits
+ 27: $t12 (t12), signed 64 bits
+ 28: $at (at), signed 64 bits
+ 29: $gp (gp), address 64 bits
+ 30: $sp (sp), address 64 bits
+ 31: $zero (zero), signed 64 bits
+ 64: $pc (pc), address 64 bits
+ 66: $unique (unique), address 64 bits
+FPU registers:
+ 32: $f0 (f0), float 64 bits
+ 33: $f1 (f1), float 64 bits
+ 34: $f2 (f2), float 64 bits
+ 35: $f3 (f3), float 64 bits
+ 36: $f4 (f4), float 64 bits
+ 37: $f5 (f5), float 64 bits
+ 38: $f6 (f6), float 64 bits
+ 39: $f7 (f7), float 64 bits
+ 40: $f8 (f8), float 64 bits
+ 41: $f9 (f9), float 64 bits
+ 42: $f10 (f10), float 64 bits
+ 43: $f11 (f11), float 64 bits
+ 44: $f12 (f12), float 64 bits
+ 45: $f13 (f13), float 64 bits
+ 46: $f14 (f14), float 64 bits
+ 47: $f15 (f15), float 64 bits
+ 48: $f16 (f16), float 64 bits
+ 49: $f17 (f17), float 64 bits
+ 50: $f18 (f18), float 64 bits
+ 51: $f19 (f19), float 64 bits
+ 52: $f20 (f20), float 64 bits
+ 53: $f21 (f21), float 64 bits
+ 54: $f22 (f22), float 64 bits
+ 55: $f23 (f23), float 64 bits
+ 56: $f24 (f24), float 64 bits
+ 57: $f25 (f25), float 64 bits
+ 58: $f26 (f26), float 64 bits
+ 59: $f27 (f27), float 64 bits
+ 60: $f28 (f28), float 64 bits
+ 61: $f29 (f29), float 64 bits
+ 62: $f30 (f30), float 64 bits
+ 63: $fpcr (fpcr), unsigned 64 bits
+EOF
+
exit 0
diff --git a/tests/run-elflint-self.sh b/tests/run-elflint-self.sh
index 7f7c01e0..7da0886a 100755
--- a/tests/run-elflint-self.sh
+++ b/tests/run-elflint-self.sh
@@ -26,12 +26,13 @@
. $srcdir/test-subr.sh
+status=0
runtest() {
# Uncomment for debuging
# echo $1
if [ -f $1 ]; then
testrun ../src/elflint --quiet --gnu-ld $1 ||
- (echo "*** failure in $1"; exit 1)
+ { echo "*** failure in $1"; status=1; }
fi
}
@@ -57,3 +58,5 @@ runtest ../libebl/libebl_ppc64.so
runtest ../libebl/libebl_sh.so
runtest ../libebl/libebl_sparc.so
runtest ../libebl/libebl_x86_64.so
+
+exit $status