This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Test case mis-categorized as UNSUPPORTED?


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]