tinycc-devel
[Top][All Lists]
Advanced

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

Re: [Tinycc-devel] [FreeBSD support] __aligned(n) + __pure issues


From: Christian Jullien
Subject: Re: [Tinycc-devel] [FreeBSD support] __aligned(n) + __pure issues
Date: Sat, 15 Oct 2016 18:26:14 +0200

Grischka,

 

Except the fix I've made http://repo.or.cz/tinycc.git/commitdiff/f7bfa0970e63c9290569eddf5e8aa14f614e4d5e :o))

It is *MUCH* better!

Many tests now pass but few still fail, see below in bold.

The const error at the end is on:

extern _Thread_local const _RuneLocale *_ThreadRuneLocale;

It appears that TLS (Thread Local Storage) is defined and tcc does not process this directive.

Also, tcc has issues when compiled by itself.

 

gmake -C tests

gmake[1]: Entering directory '/usr/home/jullien/tinycc/tests'

------------ hello-exe ------------

../tcc -B.. -I../include -I.. -I.. ../examples/ex1.c -o hello || (../tcc -vv; ex                  it 1) && ./hello

Hello World

------------ hello-run ------------

../tcc -B.. -I../include -I.. -I.. -run ../examples/ex1.c

Hello World

gcc -o libtcc_test libtcc_test.c ../libtcc.a -I.. -I.. -lm

------------ libtest ------------

./libtcc_test -B.. -I../include -I.. -I..

Hello World!

fib(32) = 2178309

add(32, 64) = 96

gcc -o tcctest.gcc tcctest.c -DTCC_TARGET_I386 -I.. -I.. -w -O0 -std=gnu99 -fno-                  omit-frame-pointer

./tcctest.gcc > test.ref

------------ test3 ------------

../tcc -B.. -I../include -I.. -I.. -DTCC_TARGET_I386 -DONE_SOURCE -run ../tcc.c                   -B.. -I../include -I.. -I.. -DTCC_TARGET_I386 -DONE_SOURCE -run ../tcc.c -B.. -I                  ../include -I.. -I.. -DTCC_TARGET_I386 -DONE_SOURCE -run ../tcc.c -B.. -I../incl                  ude -I.. -I.. -run tcctest.c > test.out3

In file included from ../tcc.c:22:

In file included from ../libtcc.c:21:

In file included from ../tcc.h:33:

In file included from /usr/include/signal.h:38:

In file included from /usr/include/sys/signal.h:46:

In file included from /usr/include/machine/signal.h:36:

/usr/include/x86/signal.h:82: error: ',' expected (got "__aligned")

gmake[1]: *** [Makefile:103: test3] Error 1

gmake[1]: Leaving directory '/usr/home/jullien/tinycc/tests'

gmake: *** [Makefile:315: test] Error 2

$

$ gmake -k test

gmake -C tests

gmake[1]: Entering directory '/usr/home/jullien/tinycc/tests'

------------ hello-exe ------------

../tcc -B.. -I../include -I.. -I.. ../examples/ex1.c -o hello || (../tcc -vv; exit 1) && ./hello

Hello World

------------ hello-run ------------

../tcc -B.. -I../include -I.. -I.. -run ../examples/ex1.c

Hello World

gcc -o libtcc_test libtcc_test.c ../libtcc.a -I.. -I.. -lm

------------ libtest ------------

./libtcc_test -B.. -I../include -I.. -I..

Hello World!

fib(32) = 2178309

add(32, 64) = 96

gcc -o tcctest.gcc tcctest.c -DTCC_TARGET_I386 -I.. -I.. -w -O0 -std=gnu99 -fno-omit-frame-pointer

./tcctest.gcc > test.ref

------------ test3 ------------

../tcc -B.. -I../include -I.. -I.. -DTCC_TARGET_I386 -DONE_SOURCE -run ../tcc.c -B.. -I../include -I.. -I.. -DTCC_TARGET_I386 -DONE_SOURCE -run ../tcc.c -B.. -I../include -I.. -I.. -DTCC_TARGET_I386 -DONE_SOURCE -run ../tcc.c -B.. -I../include -I.. -I.. -run tcctest.c > test.out3

In file included from ../tcc.c:22:

In file included from ../libtcc.c:21:

In file included from ../tcc.h:33:

In file included from /usr/include/signal.h:38:

In file included from /usr/include/sys/signal.h:46:

In file included from /usr/include/machine/signal.h:36:

/usr/include/x86/signal.h:82: error: ',' expected (got "__aligned")

gmake[1]: *** [Makefile:103: test3] Error 1

gcc -o abitest-cc abitest.c ../libtcc.a -I.. -I.. -lm -w

../tcc -B.. -I../include -I.. -I.. -o abitest-tcc abitest.c ../libtcc.c -DTCC_TARGET_I386 -DONE_SOURCE -lm

In file included from ../libtcc.c:21:

In file included from ../tcc.h:33:

In file included from /usr/include/signal.h:38:

In file included from /usr/include/sys/signal.h:46:

In file included from /usr/include/machine/signal.h:36:

/usr/include/x86/signal.h:82: error: ',' expected (got "__aligned")

gmake[1]: *** [Makefile:191: abitest-tcc] Error 1

../tcc -B.. -I../include -I.. -I.. -o vla_test vla_test.c

------------ vla_test-run ------------

./vla_test

test1... success

test2... success

test3... success

------------ tests2-dir ------------

gmake -k -C tests2

gmake[2]: Entering directory '/usr/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...

--- ../../tests/tests2/46_grep.expect   2016-10-15 06:30:48.624755000 +0200

+++ 46_grep.output      2016-10-15 18:14:30.387382000 +0200

@@ -1,3 +1,4 @@

-File 46_grep.c:

-/* vim: set expandtab ts=4 sw=3 sts=3 tw=80 :*/

-

+In file included from 46_grep.c:19:

+In file included from /usr/include/ctype.h:46:

+In file included from /usr/include/_ctype.h:95:

+/usr/include/runetype.h:92: error: ';' expected (got "const")

gmake[2]: *** [Makefile:52: 46_grep.test] Error 1

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...

Test: 79_vla_continue...

Test: 80_flexarray...

Test: 81_types...

Test: 82_attribs_position...

Test: 82_nocode_wanted...

Test: 83_utf8_in_identifiers...

Test: 84-hex-float...

Test: 85-asm-outside-function...

Test: 86-memory-model...

Test: 87_ptr_longlong_arith32...

gmake[2]: Target 'all' not remade because of errors.

gmake[2]: Leaving directory '/usr/home/jullien/tinycc/tests/tests2'

gmake[1]: *** [Makefile:81: tests2-dir] Error 2

------------ pp-dir ------------

gmake -k -C pp

gmake[2]: Entering directory '/usr/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 ...

PPTest 12 ...

PPTest 13 ...

PPTest 14 ...

PPTest 15 ...

gmake[2]: Leaving directory '/usr/home/jullien/tinycc/tests/pp'

gmake[1]: Target 'all' not remade because of errors.

gmake[1]: Leaving directory '/usr/home/jullien/tinycc/tests'

gmake: *** [Makefile:315: test] Error 2

 

-----Original Message-----
From: Tinycc-devel [mailto:address@hidden On Behalf Of grischka
Sent: samedi 15 octobre 2016 16:06
To: address@hidden
Subject: Re: [Tinycc-devel] [FreeBSD support] __aligned(n) + __pure issues

 

Christian Jullien wrote:

> Ok,

> The point is that it compiles ROOTB but then a single line program using only ISO include and std C library fails because of __aligned in a **system** header.

> I agree that __aligned is a probably a macro or a gcc FreeBSD specific

> extension, but no one wants to change it source file (or Makefile)

> when he the switch from gcc to tcc To be more clear, let me start

> again from scratch (Don’t miss *Linux* in banner with -v and -vv)

 

Please!  You were clear.  Anyway, maybe this helps:

    http://repo.or.cz/tinycc.git/commitdiff/f3c1ea6c2d7dca7883985820e46ec536e2d7e8cc

It is expected that this could break system xyz whatever.

 

Some background research:

 

- obviously FreeBSD headers expect __GNUC__

   http://pcc.ludd.ltu.se/jira/browse/PCC-18

 

- patch for sys/cdefs.h suggested by PCC

   http://pcc.ludd.ltu.se/ftp/pub/patches/openbsd-include-sys-081220.diff

 

- __GNUC__ nowadays seems to mean the C dialect rather than the compiler

   https://gcc.gnu.org/ml/gcc/2008-07/msg00026.html

 

Not sure whether we really want to define __GNUC__.  This might cause all kind of problems.  However if we don't then sys/cdefs.h does

     #define __attribute__(xyz)

 

-- gr

 

 

_______________________________________________

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]