tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] AArch64 status?


From: Christian Jullien
Subject: Re: [Tinycc-devel] AArch64 status?
Date: Sat, 31 Oct 2015 07:11:54 +0100

Here is the complete log which is not too bad:


address@hidden:~/tinycc$ make -k tests
make: Nothing to be done for `tests'.
address@hidden:~/tinycc$ make -k test > foo 2>&1
address@hidden:~/tinycc$ more foo
make -C tests test 'PROGS_CROSS=i386-linux-gnu-tcc x86_64-linux-gnu-tcc
i386-win
-mingw32-tcc x86_64-win-mingw32-tcc arm-linux-fpa-tcc arm-linux-fpa-ld-tcc
arm-l
inux-gnu-tcc arm-linux-gnueabi-tcc c67-tcc arm-win-mingw32ce-tcc'
make[1]: Entering directory `/home/jullien/tinycc/tests'
------------ hello-exe ------------
../tcc -B.. -I.. -I.. -I../include -L.. ../examples/ex1.c -o hello ||
(../tcc -v
v; exit 1) && ./hello
Hello World
------------ hello-run ------------
../tcc -B.. -I.. -I.. -I../include -L.. -run ../examples/ex1.c
Hello World
------------ libtest ------------
./libtcc_test -B.. -I.. -I.. -I../include -L..
tcc: error: R_AARCH64_(JUMP|CALL)26 relocation failed (val=2a9835f0,
addr=401990
)
make[1]: *** [libtest] Error 1
gcc -o tcctest.cc tcctest.c -I.. -I..  -w
-DCONFIG_MULTIARCHDIR="\"aarch64-linu
x-gnu\"" -DTCC_TARGET_ARM64 -std=gnu99 -O0 -fno-omit-frame-pointer
./tcctest.cc > test.ref
------------ test3 ------------
../tcc -B.. -I.. -I.. -I../include -L..
-DCONFIG_MULTIARCHDIR="\"aarch64-linux-g
nu\"" -DTCC_TARGET_ARM64 -DONE_SOURCE -run ../tcc.c -B.. -I.. -I..
-I../include
-L.. -DCONFIG_MULTIARCHDIR="\"aarch64-linux-gnu\"" -DTCC_TARGET_ARM64
-DONE_SOUR
CE -run ../tcc.c -B.. -I.. -I.. -I../include -L..
-DCONFIG_MULTIARCHDIR="\"aarch
64-linux-gnu\"" -DTCC_TARGET_ARM64 -DONE_SOURCE -run ../tcc.c -B.. -I.. -I..
-I.
./include -L.. -run tcctest.c > test.out3
Auto Test3 OK
gcc -o abitest-cc abitest.c ../libtcc.a -I..
-DCONFIG_MULTIARCHDIR="\"aarch64-
linux-gnu\"" -DTCC_TARGET_ARM64 -lm -ldl   -I..
../tcc -B.. -I.. -I.. -I../include -L.. -o abitest-tcc abitest.c ../libtcc.c
-I.
.   -DCONFIG_MULTIARCHDIR="\"aarch64-linux-gnu\"" -DTCC_TARGET_ARM64
-DONE_SOURC
E -lm -ldl  -I..
------------ abitest ------------
./abitest-cc -B.. -I.. -I.. -I../include -L..
ret_int_test... success
ret_longlong_test... success
ret_float_test... success
ret_double_test... success
ret_longdouble_test... success
ret_2float_test... success
ret_2double_test... success
ret_mixed3_test... success
reg_pack_test... success
reg_pack_longlong_test... success
sret_test... success
one_member_union_test... success
two_member_union_test... success
many_struct_test... success
many_struct_test_2... success
many_struct_test_3... success
stdarg_test... success
stdarg_struct_test... success
arg_align_test... success
if [ "" != "yes" ]; then ./abitest-tcc -B.. -I.. -I.. -I../include -L..; fi
ret_int_test... success
ret_longlong_test... success
ret_float_test... success
ret_double_test... success
ret_longdouble_test... success
ret_2float_test... success
ret_2double_test... success
ret_mixed3_test... success
reg_pack_test... success
reg_pack_longlong_test... success
sret_test... success
one_member_union_test... success
two_member_union_test... success
many_struct_test... success
many_struct_test_2... success
many_struct_test_3... success
stdarg_test... success
stdarg_struct_test... success
arg_align_test... success
------------ tests2-dir ------------
make -k -C tests2
make[2]: Entering directory `/home/jullien/tinycc/tests/tests2'
Test: 00_assignment...
Test: 01_comment...
Test: 02_printf...
Test: 03_struct...
Test: 04_for...
Test: 05_array...
Test: 06_case...
Test: 07_function...
Test: 08_while...
Test: 09_do_while...
Test: 10_pointer...
Test: 11_precedence...
Test: 12_hashdefine...
Test: 13_integer_literals...
Test: 14_if...
Test: 15_recursion...
Test: 16_nesting...
Test: 17_enum...
Test: 18_include...
Test: 19_pointer_arithmetic...
Test: 20_pointer_comparison...
Test: 21_char_array...
Test: 22_floating_point...
Test: 23_type_coercion...
Test: 24_math_library...
Test: 25_quicksort...
Test: 26_character_constants...
Test: 27_sizeof...
Test: 28_strings...
Test: 29_array_address...
Test: 30_hanoi...
Test: 31_args...
Test: 32_led...
Test: 33_ternary_op...
Test: 35_sizeof...
Test: 36_array_initialisers...
Test: 37_sprintf...
Test: 38_multiple_array_index...
Test: 39_typedef...
Test: 40_stdio...
Test: 41_hashif...
Test: 42_function_pointer...
Test: 43_void_param...
Test: 44_scoped_declarations...
Test: 45_empty_for...
Test: 46_grep...
Test: 47_switch_return...
Test: 48_nested_break...
Test: 49_bracket_evaluation...
Test: 50_logical_second_arg...
Test: 51_static...
Test: 52_unnamed_enum...
Test: 54_goto...
Test: 55_lshift_type...
Test: 56_btype_excess-1...
Test: 57_btype_excess-2...
Test: 58_function_redefinition...
Test: 59_function_array...
Test: 60_enum_redefinition...
Test: 61_undefined_enum...
Test: 62_enumerator_redefinition...
Test: 63_local_enumerator_redefinition...
Test: 64_macro_nesting...
Test: 67_macro_concat...
Test: 70_floating_point_literals...
Test: 71_macro_empty_arg...
Test: 72_long_long_constant...
Test: 73_arm64...
Test: 74_nocode_wanted...
Test: 75_array_in_struct_init...
Test: 76_dollars_in_identifiers...
Test: 77_push_pop_macro...
Test: 78_vla_label...
--- 78_vla_label.expect 2015-10-29 22:58:50.244155160 -0700
+++ 78_vla_label.output 2015-10-30 23:12:55.164155160 -0700
@@ -1,2 +1 @@
-boom!
-boom!
+78_vla_label.c:7: error: variable length arrays unsupported for this target
make[2]: *** [78_vla_label.test] Error 1
Test: 79_vla_continue...
--- 79_vla_continue.expect      2015-10-29 22:58:50.244155160 -0700
+++ 79_vla_continue.output      2015-10-30 23:12:55.174155160 -0700
@@ -1,5 +1 @@
-OK
-OK
-OK
-OK
-OK
+79_vla_continue.c:13: error: variable length arrays unsupported for this
target
make[2]: *** [79_vla_continue.test] Error 1
make[2]: Target `all' not remade because of errors.
make[2]: Leaving directory `/home/jullien/tinycc/tests/tests2'
make[1]: *** [tests2-dir] Error 2
------------ pp-dir ------------
make -k -C pp
make[2]: Entering directory `/home/jullien/tinycc/tests/pp'
PPTest 01 ...
PPTest 02 ...
PPTest 03 ...
PPTest 04 ...
PPTest 05 ...
PPTest 06 ...
PPTest 07 ...
PPTest 08 ...
PPTest 09 ...
PPTest 10 ...
PPTest 11 ...
make[2]: Leaving directory `/home/jullien/tinycc/tests/pp'
make[1]: Target `test' not remade because of errors.
make[1]: Leaving directory `/home/jullien/tinycc/tests'
make: *** [test] Error 2

-----Original Message-----
From: address@hidden
[mailto:address@hidden On Behalf Of
Edmund Grimley Evans
Sent: vendredi 30 octobre 2015 09:35
To: address@hidden
Subject: Re: [Tinycc-devel] AArch64 status?

> He is my first attempt. It compiles well and first tcc "Hello World" 
> works but first libtest test fails with tcc: error: 
> R_AARCH64_(JUMP|CALL)26 relocation failed (val=2a4025f0, addr=401990).

You're one of the first people to try it.

I'm not very surprised by that error. I vaguely recall that there are some
fundamental problems in the linker, problems that are not specific to arm64
but which happen to appear mostly with arm64. I tested it just now under
QEMU on an i386 machine, and all tests passed, which shows that the code
generation is mostly complete.

The error above has to do with a B/BL being out of range. If you try the
test lots of times then you might find it occasionally passes because the
target code happened to get allocated within range.
The linker ought to insert a veneer, but it doesn't.

I'm not sure what the status is of VLAs. I just had 78_vla_label and
79_vla_continue pass, though vla_test-run (in tests/Makefile) is only run on
x86-64, suggesting that those tests are not supposed to pass on arm64.

Do you have any failures other than those three (libtest, 78, 79)?

Edmund

_______________________________________________
Tinycc-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/tinycc-devel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]