This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Test case mis-categorized as UNSUPPORTED?
- From: Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>
- To: "Bin.Cheng" <amker dot cheng at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Thu, 07 Jan 2016 14:21:53 +0000
- Subject: Re: Test case mis-categorized as UNSUPPORTED?
- Authentication-results: sourceware.org; auth=none
- References: <CAHFci29W-woB-+NJ=iLKCRmcSnTi9DT=172T_evZ_YXse2VMbQ at mail dot gmail dot com>
Hi Bin,
On 07/01/16 14:15, Bin.Cheng wrote:
Hi,
Below test is supposed to be compiled and run, but we failed to link
the binary with tiny memory model.
spawn /data/work/build-aarch64_be-none-elf/obj/gcc2/gcc/testsuite/g++14/../../xg++
-B/data/work/build-aarch64_be-none-elf/obj/gcc2/gcc/testsuite/g++14/../../
/data/work/src/gcc/gcc/testsuite/g++.dg/torture/pr67600.C
-fno-diagnostics-show-caret -fdiagnostics-color=never -nostdinc++
-I/data/work/build-aarch64_be-none-elf/obj/gcc2/aarch64_be-none-elf/libstdc++-v3/include/aarch64_be-none-elf
-I/data/work/build-aarch64_be-none-elf/obj/gcc2/aarch64_be-none-elf/libstdc++-v3/include
-I/data/work/src/gcc/libstdc++-v3/libsupc++
-I/data/work/src/gcc/libstdc++-v3/include/backward
-I/data/work/src/gcc/libstdc++-v3/testsuite/util -fmessage-length=0
-O2 -flto -fuse-linker-plugin -fno-fat-lto-objects
-specs=aem-validation.specs
-L/data/work/build-aarch64_be-none-elf/obj/gcc2/aarch64_be-none-elf/./libstdc++-v3/src/.libs
-B/data/work/build-aarch64_be-none-elf/obj/gcc2/aarch64_be-none-elf/./libstdc++-v3/src/.libs
-lm -mcmodel=tiny -o ./pr67600.exe
/tmp/ccd32hub.ltrans0.ltrans.o: In function `main':
<artificial>:(.text.startup+0x68): relocation truncated to fit:
R_AARCH64_ADR_PREL_LO21 against symbol `std::cout' defined in
.bss._ZSt4cout section in
/data/work/build-aarch64_be-none-elf/obj/gcc2/aarch64_be-none-elf/./libstdc++-v3/src/.libs/libstdc++.a(globals_io.o)
collect2: error: ld returned 1 exit status
compiler exited with status 1
output is:
/tmp/ccd32hub.ltrans0.ltrans.o: In function `main':
<artificial>:(.text.startup+0x68): relocation truncated to fit:
R_AARCH64_ADR_PREL_LO21 against symbol `std::cout' defined in
.bss._ZSt4cout section in
/data/work/build-aarch64_be-none-elf/obj/gcc2/aarch64_be-none-elf/./libstdc++-v3/src/.libs/libstdc++.a(globals_io.o)
collect2: error: ld returned 1 exit status
UNSUPPORTED: g++.dg/torture/pr67600.C -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects : memory full
In my understanding, dg-do run test case should be marked as
FAIL&UNRESOLVED if binary file can't be generated. But here it's
categorized as an UNSUPPORTED test. This could be mis-leading
sometimes since unsupported test could be ignored.
The problem is that many of these libstdc++ tests got too big for the tiny memory model
and the whole testsuite got very noisy due to these relocation truncation errors.
That's why we try to mark them as unsupported. I tried doing it in the past and
Szabolcs fixed it properly with https://gcc.gnu.org/ml/libstdc++/2015-10/msg00037.html
Thanks,
Kyrill
Any idea why it acts in this way?
Thanks,
bin