Test case mis-categorized as UNSUPPORTED?

Kyrill Tkachov kyrylo.tkachov@foss.arm.com
Thu Jan 7 14:22:00 GMT 2016


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
>



More information about the Gcc mailing list