aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@sifive.com>2019-07-23 01:47:55 -0700
committerKito Cheng <kito.cheng@sifive.com>2019-07-23 01:48:44 -0700
commit490bb249f38c5cf82e13490b0ebc12c0eb2b6f81 (patch)
treeed4de273fa7996a4fc31dfbac0fa08ade549308b
parent07f5d751f84a18c549a74358967c7ed346a48524 (diff)
downloadriscv-gnu-toolchain-490bb249f38c5cf82e13490b0ebc12c0eb2b6f81.zip
riscv-gnu-toolchain-490bb249f38c5cf82e13490b0ebc12c0eb2b6f81.tar.gz
riscv-gnu-toolchain-490bb249f38c5cf82e13490b0ebc12c0eb2b6f81.tar.bz2
Apply new whitelist scheme for binutils
-rw-r--r--Makefile.in21
-rwxr-xr-xscripts/testsuite-filter106
-rw-r--r--test/binutils-linux/rv32imac-ilp32.log14
-rw-r--r--test/binutils-linux/rv32imafdc-ilp32.log14
-rw-r--r--test/binutils-linux/rv32imafdc-ilp32d.log4
-rw-r--r--test/binutils-linux/rv64imac-lp64.log14
-rw-r--r--test/binutils-linux/rv64imafdc-lp64.log14
-rw-r--r--test/binutils-linux/rv64imafdc-lp64d.log4
-rw-r--r--test/binutils-newlib/rv32i-ilp32.log14
-rw-r--r--test/binutils-newlib/rv32iac-ilp32.log14
-rw-r--r--test/binutils-newlib/rv32im-ilp32.log14
-rw-r--r--test/binutils-newlib/rv32imac-ilp32.log14
-rw-r--r--test/binutils-newlib/rv32imafc-ilp32f.log14
-rw-r--r--test/binutils-newlib/rv64imac-lp64.log14
-rw-r--r--test/binutils-newlib/rv64imafdc-lp64d.log4
-rw-r--r--test/whitelist/binutils/common.log18
-rw-r--r--test/whitelist/binutils/glibc.log6
-rw-r--r--test/whitelist/binutils/newlib.log9
18 files changed, 112 insertions, 200 deletions
diff --git a/Makefile.in b/Makefile.in
index 1b7eb03..a006b0a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -808,23 +808,20 @@ report-dhrystone-linux: $(patsubst %,stamps/check-dhrystone-linux-%,$(GLIBC_MULT
.PHONY: report-binutils-newlib report-binutils-newlib-nano
report-binutils-newlib: stamps/check-binutils-newlib
- stat $(patsubst %,$(srcdir)/test/binutils-newlib/%.log,$(NEWLIB_MULTILIB_NAMES)) || exit 1
-# Fail if there are blank lines in the log file used as input for grep below.
- if grep '^$$' $(patsubst %,$(srcdir)/test/binutils-newlib/%.log,$(NEWLIB_MULTILIB_NAMES)); then exit 1; fi
- if find build-binutils-newlib -iname '*.sum' | xargs grep ^FAIL | sort | grep -F -v $(patsubst %,--file=$(srcdir)/test/binutils-newlib/%.log,$(NEWLIB_MULTILIB_NAMES)); then false; else true; fi
+ $(srcdir)/scripts/testsuite-filter binutils newlib \
+ $(srcdir)/test/whitelist \
+ `find build-binutils-newlib/ -name *.sum |paste -sd "," -`
report-binutils-newlib-nano: stamps/check-binutils-newlib-nano
- stat $(patsubst %,$(srcdir)/test/binutils-newlib/%.log,$(NEWLIB_MULTILIB_NAMES)) || exit 1
-# Fail if there are blank lines in the log file used as input for grep below.
- if grep '^$$' $(patsubst %,$(srcdir)/test/binutils-newlib/%.log,$(NEWLIB_MULTILIB_NAMES)); then exit 1; fi
- if find build-binutils-newlib -iname '*.sum' | xargs grep ^FAIL | sort | grep -F -v $(patsubst %,--file=$(srcdir)/test/binutils-newlib/%.log,$(NEWLIB_MULTILIB_NAMES)); then false; else true; fi
+ $(srcdir)/scripts/testsuite-filter binutils newlib-nano \
+ $(srcdir)/test/whitelist \
+ `find build-binutils-newlib/ -name *.sum |paste -sd "," -`
.PHONY: report-binutils-linux
report-binutils-linux: stamps/check-binutils-linux
- stat $(patsubst %,$(srcdir)/test/binutils-linux/%.log,$(GLIBC_MULTILIB_NAMES)) || exit 1
-# Fail if there are blank lines in the log file used as input for grep below.
- if grep '^$$' $(patsubst %,$(srcdir)/test/binutils-linux/%.log,$(GLIBC_MULTILIB_NAMES)); then exit 1; fi
- if find build-binutils-linux -iname '*.sum' | xargs grep ^FAIL | sort | grep -F -v $(patsubst %,--file=$(srcdir)/test/binutils-linux/%.log,$(GLIBC_MULTILIB_NAMES)); then false; else true; fi
+ $(srcdir)/scripts/testsuite-filter binutils glibc \
+ $(srcdir)/test/whitelist \
+ `find build-binutils-linux/ -name *.sum |paste -sd "," -`
clean:
rm -rf build-* $(addprefix src/,$(PACKAGES)) stamps install-newlib-nano
diff --git a/scripts/testsuite-filter b/scripts/testsuite-filter
index 51eabb2..bd42ded 100755
--- a/scripts/testsuite-filter
+++ b/scripts/testsuite-filter
@@ -49,6 +49,8 @@ def get_white_list_files(raw_arch, abi, libc, white_list_base_dir):
print ("Try append: %s" % filename)
filepath = os.path.join(white_list_base_dir, filename)
if os.path.exists(filepath):
+ if debug:
+ print ("Got: %s" % filename)
white_list_files.append(filepath)
libc_filename = "common.log"
@@ -103,8 +105,11 @@ def get_white_list_files(raw_arch, abi, libc, white_list_base_dir):
return white_list_files
-def read_white_lists(white_list_files):
- white_lists = dict()
+def read_white_lists(white_list_files, is_gcc):
+ if is_gcc:
+ white_lists = dict()
+ else:
+ white_lists = set()
for fname in white_list_files:
with open(fname) as f:
content = f.readlines()
@@ -114,18 +119,23 @@ def read_white_lists(white_list_files):
continue
if l[0] == '#':
continue
- try:
- key = l.split(' ')[1]
- except:
- print ("Corrupt whitelist file?")
- print ("Each line must contail <STATUS>: .*")
- print ("e.g. FAIL: g++.dg/pr83239.C")
- print ("Or starts with # for comment")
- white_lists[key] = l
+
+ if is_gcc:
+ try:
+ key = l.split(' ')[1]
+ except:
+ print ("Corrupt whitelist file?")
+ print ("Each line must contail <STATUS>: .*")
+ print ("e.g. FAIL: g++.dg/pr83239.C")
+ print ("Or starts with # for comment")
+ white_lists[key] = l
+ else:
+ white_lists.add(l)
+
return white_lists
-def read_gcc_sum(sum_files):
+def read_sum(sum_files):
unexpected_results = dict()
for sum_file in sum_files:
with open(sum_file) as f:
@@ -155,10 +165,10 @@ def read_gcc_sum(sum_files):
return unexpected_results
-def get_white_list(arch, abi, libc, white_list_base_dir):
+def get_white_list(arch, abi, libc, white_list_base_dir, is_gcc):
white_list_files = \
get_white_list_files(arch, abi, libc, white_list_base_dir)
- white_list = read_white_lists(white_list_files)
+ white_list = read_white_lists(white_list_files, is_gcc)
return white_list
@@ -166,6 +176,7 @@ def get_white_list(arch, abi, libc, white_list_base_dir):
def filter_result(tool, libc, white_list_base_dir, unexpected_results):
summary = dict()
any_fail = False
+ is_gcc = tool == 'gcc'
# Filter with white list.
for testtool, variation_unexpected_result in unexpected_results.iteritems():
for variation, unexpected_result in variation_unexpected_result.iteritems():
@@ -183,26 +194,40 @@ def filter_result(tool, libc, white_list_base_dir, unexpected_results):
white_list = \
get_white_list(arch, abi, libc,
- os.path.join(white_list_base_dir, tool))
+ os.path.join(white_list_base_dir, tool),
+ is_gcc)
# filter!
config = (arch, abi, cmodel)
fail_count = 0
- case_count = set()
unexpected_result_list = []
- for ur in unexpected_result:
- key = ur.split(' ')[1]
- if key in white_list and \
- ur.startswith(white_list[key]):
- # This item can be ignored
- continue
- else:
- unexpected_result_list.append(ur)
- fail_count += 1
- case_count.add(key)
- any_fail = True
- if config not in summary:
- summary[config] = dict()
- summary[config][testtool] = (fail_count, len(case_count))
+ if is_gcc:
+ case_count = set()
+ for ur in unexpected_result:
+ key = ur.split(' ')[1]
+ if key in white_list and \
+ ur.startswith(white_list[key]):
+ # This item can be ignored
+ continue
+ else:
+ unexpected_result_list.append(ur)
+ fail_count += 1
+ case_count.add(key)
+ any_fail = True
+
+ if config not in summary:
+ summary[config] = dict()
+ summary[config][testtool] = (fail_count, len(case_count))
+ else:
+ for ur in unexpected_result:
+ if ur not in white_list:
+ unexpected_result_list.append(ur)
+ fail_count += 1
+ any_fail = True
+
+ if config not in summary:
+ summary[config] = dict()
+ summary[config][testtool] = fail_count
+
if len(unexpected_result_list) != 0:
print ("\t\t=== %s: Unexpected fails for %s %s %s ===" \
@@ -214,24 +239,33 @@ def filter_result(tool, libc, white_list_base_dir, unexpected_results):
# Generate summary report.
if tool == 'gcc':
toollist = ['gcc', 'g++', 'gfortran']
+ elif tool == 'binutils':
+ toollist = ['binutils', 'ld', 'gas']
else:
raise Exception("Unsupported tool `%s`" % tool)
bar_item = map(lambda x: "%13s" % x, toollist)
bar = " |".join(bar_item)
- print ("\n ========= Summary of gcc testsuite =========")
- print (" | # of unexpected case / # of unique unexpected case")
+ print ("\n ========= Summary of %s testsuite =========" % tool)
+ if is_gcc:
+ print (" | # of unexpected case / # of unique unexpected case")
+ else:
+ print (" | # of unexpected case")
print (" |%s |" % bar)
for config, result in summary.iteritems():
arch, abi, cmodel = config
print (" %10s/ %6s/ %6s |" % (arch, abi, cmodel), end='')
for tool in toollist:
if tool not in summary[config]:
- print ("%13s |" % '-', end='')
+ print ("%7s |" % '-', end='')
continue
- fail_count, case_count = summary[config][tool]
- print ("%5d / %5d |" % (fail_count, case_count), end='')
+ if is_gcc:
+ fail_count, case_count = summary[config][tool]
+ print ("%5d / %5d |" % (fail_count, case_count), end='')
+ else:
+ fail_count = summary[config][tool]
+ print ("%13d |" % fail_count, end='')
print ("")
if any_fail:
return 1
@@ -248,8 +282,8 @@ def main():
rv = 0
sum_files = sum_files.split(',')
- unexpected_results = read_gcc_sum(sum_files)
- if tool in ['gcc']:
+ unexpected_results = read_sum(sum_files)
+ if tool in ['gcc', 'binutils']:
rv = filter_result(tool, libc, white_list_base_dir,
unexpected_results)
else:
diff --git a/test/binutils-linux/rv32imac-ilp32.log b/test/binutils-linux/rv32imac-ilp32.log
deleted file mode 100644
index c02de75..0000000
--- a/test/binutils-linux/rv32imac-ilp32.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-linux/ld/ld.sum:FAIL: Build pr22263-1
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-linux/ld/ld.sum:FAIL: indirect5c dynsym
-build-binutils-linux/ld/ld.sum:FAIL: indirect5d dynsym
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-linux/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-linux/ld/ld.sum:FAIL: LTO 3b
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-linux/rv32imafdc-ilp32.log b/test/binutils-linux/rv32imafdc-ilp32.log
deleted file mode 100644
index c02de75..0000000
--- a/test/binutils-linux/rv32imafdc-ilp32.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-linux/ld/ld.sum:FAIL: Build pr22263-1
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-linux/ld/ld.sum:FAIL: indirect5c dynsym
-build-binutils-linux/ld/ld.sum:FAIL: indirect5d dynsym
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-linux/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-linux/ld/ld.sum:FAIL: LTO 3b
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-linux/rv32imafdc-ilp32d.log b/test/binutils-linux/rv32imafdc-ilp32d.log
deleted file mode 100644
index bbe67b5..0000000
--- a/test/binutils-linux/rv32imafdc-ilp32d.log
+++ /dev/null
@@ -1,4 +0,0 @@
-build-binutils-linux/ld/ld.sum:FAIL: Build pr22263-1
-build-binutils-linux/ld/ld.sum:FAIL: indirect5c dynsym
-build-binutils-linux/ld/ld.sum:FAIL: indirect5d dynsym
-build-binutils-linux/ld/ld.sum:FAIL: ld-scripts/size-1
diff --git a/test/binutils-linux/rv64imac-lp64.log b/test/binutils-linux/rv64imac-lp64.log
deleted file mode 100644
index c02de75..0000000
--- a/test/binutils-linux/rv64imac-lp64.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-linux/ld/ld.sum:FAIL: Build pr22263-1
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-linux/ld/ld.sum:FAIL: indirect5c dynsym
-build-binutils-linux/ld/ld.sum:FAIL: indirect5d dynsym
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-linux/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-linux/ld/ld.sum:FAIL: LTO 3b
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-linux/rv64imafdc-lp64.log b/test/binutils-linux/rv64imafdc-lp64.log
deleted file mode 100644
index c02de75..0000000
--- a/test/binutils-linux/rv64imafdc-lp64.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-linux/ld/ld.sum:FAIL: Build pr22263-1
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-linux/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-linux/ld/ld.sum:FAIL: indirect5c dynsym
-build-binutils-linux/ld/ld.sum:FAIL: indirect5d dynsym
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-linux/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-linux/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-linux/ld/ld.sum:FAIL: LTO 3b
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5
-build-binutils-linux/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-linux/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-linux/rv64imafdc-lp64d.log b/test/binutils-linux/rv64imafdc-lp64d.log
deleted file mode 100644
index bbe67b5..0000000
--- a/test/binutils-linux/rv64imafdc-lp64d.log
+++ /dev/null
@@ -1,4 +0,0 @@
-build-binutils-linux/ld/ld.sum:FAIL: Build pr22263-1
-build-binutils-linux/ld/ld.sum:FAIL: indirect5c dynsym
-build-binutils-linux/ld/ld.sum:FAIL: indirect5d dynsym
-build-binutils-linux/ld/ld.sum:FAIL: ld-scripts/size-1
diff --git a/test/binutils-newlib/rv32i-ilp32.log b/test/binutils-newlib/rv32i-ilp32.log
deleted file mode 100644
index 966cf6d..0000000
--- a/test/binutils-newlib/rv32i-ilp32.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23818.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23958.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build pr22983
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 3b
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-newlib/rv32iac-ilp32.log b/test/binutils-newlib/rv32iac-ilp32.log
deleted file mode 100644
index 966cf6d..0000000
--- a/test/binutils-newlib/rv32iac-ilp32.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23818.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23958.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build pr22983
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 3b
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-newlib/rv32im-ilp32.log b/test/binutils-newlib/rv32im-ilp32.log
deleted file mode 100644
index 966cf6d..0000000
--- a/test/binutils-newlib/rv32im-ilp32.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23818.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23958.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build pr22983
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 3b
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-newlib/rv32imac-ilp32.log b/test/binutils-newlib/rv32imac-ilp32.log
deleted file mode 100644
index 966cf6d..0000000
--- a/test/binutils-newlib/rv32imac-ilp32.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23818.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23958.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build pr22983
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 3b
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-newlib/rv32imafc-ilp32f.log b/test/binutils-newlib/rv32imafc-ilp32f.log
deleted file mode 100644
index 966cf6d..0000000
--- a/test/binutils-newlib/rv32imafc-ilp32f.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23818.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23958.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build pr22983
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 3b
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-newlib/rv64imac-lp64.log b/test/binutils-newlib/rv64imac-lp64.log
deleted file mode 100644
index 966cf6d..0000000
--- a/test/binutils-newlib/rv64imac-lp64.log
+++ /dev/null
@@ -1,14 +0,0 @@
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23818.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23958.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build pr22983
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with --defsym
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with KEEP
-build-binutils-newlib/ld/ld.sum:FAIL: --gc-sections with __start_SECTIONNAME
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-3r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-plugin/lto-5r
-build-binutils-newlib/ld/ld.sum:FAIL: ld-scripts/size-1
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 3b
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5
-build-binutils-newlib/ld/ld.sum:FAIL: LTO 5 symbol
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (2)
-build-binutils-newlib/ld/ld.sum:FAIL: PR ld/19317 (3)
diff --git a/test/binutils-newlib/rv64imafdc-lp64d.log b/test/binutils-newlib/rv64imafdc-lp64d.log
deleted file mode 100644
index 4635488..0000000
--- a/test/binutils-newlib/rv64imafdc-lp64d.log
+++ /dev/null
@@ -1,4 +0,0 @@
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23818.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build libpr23958.so
-build-binutils-newlib/ld/ld.sum:FAIL: Build pr22983
-build-binutils-newlib/ld/ld.sum:FAIL: ld-scripts/size-1
diff --git a/test/whitelist/binutils/common.log b/test/whitelist/binutils/common.log
new file mode 100644
index 0000000..c9cda0b
--- /dev/null
+++ b/test/whitelist/binutils/common.log
@@ -0,0 +1,18 @@
+#
+# Following fail cases is cause by mismatch ABI,
+# because -march/-mabi didn't pass to as/ld.
+#
+FAIL: --gc-sections with --defsym
+FAIL: --gc-sections with KEEP
+FAIL: --gc-sections with __start_SECTIONNAME
+FAIL: ld-plugin/lto-3r
+FAIL: ld-plugin/lto-5r
+FAIL: PR ld/19317 (2)
+FAIL: PR ld/19317 (3)
+FAIL: LTO 5 symbol
+FAIL: LTO 3b
+FAIL: LTO 5
+#
+# .align insert nop cause unexpected size.
+#
+FAIL: ld-scripts/size-1
diff --git a/test/whitelist/binutils/glibc.log b/test/whitelist/binutils/glibc.log
new file mode 100644
index 0000000..fa7eb24
--- /dev/null
+++ b/test/whitelist/binutils/glibc.log
@@ -0,0 +1,6 @@
+#
+# XXX: Unknwon.
+#
+FAIL: indirect5c dynsym
+FAIL: indirect5d dynsym
+FAIL: Build pr22263-1
diff --git a/test/whitelist/binutils/newlib.log b/test/whitelist/binutils/newlib.log
new file mode 100644
index 0000000..79b9698
--- /dev/null
+++ b/test/whitelist/binutils/newlib.log
@@ -0,0 +1,9 @@
+#
+# -shared unsupported on bare-metal toolchain
+#
+FAIL: Build libpr23818.so
+FAIL: Build libpr23958.so
+#
+# XXX: Unknown reason.
+#
+FAIL: Build pr22983