Subversion Repositories Kolibri OS

Rev

Rev 6441 | Rev 6460 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. Siemargl port comments
  2.  
  3. Used github branch https://github.com/TinyCC/tinycc
  4. It have a vesion 0.9.26 with heads up to 0.9.27 - see ChangeLog
  5.  
  6. Kolibri version errata/changelog:
  7.  
  8. -added TCC_TARGET_MEOS as needed
  9. -leading_underscore by default is 0 (can use -f[no-]leading-underscore),
  10. otherwise (error) underscoring all symbols, not only cdecl
  11. -added message in tccmeos.c about missed symbols when linking KOS executable
  12. -start.o added automatically, when -nostdlib not used
  13. -to use standard ktcc lib must add -lck at commandline
  14. -default search paths are ./include ./lib from executable (under KOS need to
  15.  use -Bpath_to_ktcc and put start.o in current dir)
  16. -when config.h is ready, compiler can be easy builded as [kos32-]gcc tcc.c libtcc.c
  17.  see also makefile.kos32
  18. -silent (kos) -> writes to debugboard
  19. -impossible using with mingw-gcc compiled lib, incompatible library format:
  20.  .o is PE-format from gcc but ELF from tcc, may be linux-gcc does it ok
  21. -__fastcall incompatible with other compilers. now stack freed by caller.
  22.  must fix i386-gen.c@490,572 (fixed in other branch https://github.com/mirror/tinycc)
  23.  
  24.  
  25. -using __attribute__((packed)) see test82. need naming struct twice as in kos32sys1.h
  26. -using __attribute__ ((alias xxx)) restricted only for non "static inline" functions
  27. -erroneous or "non TCC" member using in nested structs or unions can lead to compiler internal error
  28. -not working: default search path are ./include ./lib from executable
  29. --under KOS need to use -Bpath_to_ktcc
  30. --start.o not found using -B (kos) - put near your.c file
  31. -bench timing coarse (0s or 1s), no usec in newlib gettimeofday. OK
  32.  
  33. Tests status:
  34. asmtest +
  35. abitest not tested (embedding compiler)
  36. libtcctest not tested (embedding compiler)
  37. boundtest ----- alloca removed from tcc  libtcc.c:945 (really not worked)
  38. tcctest most test ok, some problems with long double
  39. vla_test.c +
  40.  
  41. pp/* +  (minor comment error in 13.s)
  42.  
  43. tests2/* : see below
  44.  
  45. // errata
  46. skippin' tests
  47. test76 fail dollars in identifiers
  48. test34 fail (array assignment not supported)
  49. test73 fail compile (no stdint.h), printfloat, ARM specific
  50. test46 no stdin - removed funtionality read from console, but file ops works
  51.  
  52.  
  53. libc:
  54. -no "finished" in title of console program after exit console - use con_exit()
  55. -used system memory allocator (4096 bytes minimum)
  56.  
  57.  
  58. libc not complete. overall status:
  59. no files:
  60. errno.h  - in stdio
  61. limits.h
  62. locale.h
  63. setjmp.h
  64. signall.h
  65. time.h  - can use get_tick_count()/100 from kos32sys1.h
  66. wchar.h
  67. wctype.h
  68.  
  69.  
  70.  
  71. functions absent list:
  72.  
  73. math.h
  74. frexp
  75. ldexp
  76. modf
  77. fmod
  78.  
  79. HUGE_VAL
  80.  
  81. stdio.h:
  82. remove
  83. rename
  84. tmpfile
  85. tmpnam
  86. freopen
  87. setbuf
  88. setvbuf
  89.  
  90.  
  91. stdlib.h:
  92. atexit
  93. getenv
  94. system
  95. bsearch
  96. qsort
  97. mblen
  98. mbtowc
  99. wctomb
  100. mbstowcs
  101. wcstombs
  102.  
  103. string.h
  104. strxfrm
  105.  
  106.  
  107.             Status or libc tests
  108.  
  109. ---FAILED---
  110. strtoul incorrect work with big unsigned > MAX_LONG
  111.  
  112.  
  113. ---NOT TESTED---
  114. no library fns realized
  115. qsort
  116. time
  117.  
  118. ---HANG---
  119. sscanf
  120. >TEST_F(0x1234p56) - no %a formats
  121.  
  122.  
  123. ---STACK IS SMALL---
  124. use new -stack=1280000 option to pass test
  125. tstring
  126. strtodlong
  127.  
  128.  
  129. --other--
  130. fscanf
  131. -?scanf ignores width specs, '*' and [chars], cant read %a float
  132. -%n counts as parameter
  133.  
  134. snprintf
  135. -some format misturbances
  136. -may incorrect prints unsigned > 2147483647L
  137.  
  138. ungetc
  139. -ungetc fails if filepos == 0 - no tricks
  140.  
  141. all file ops limited to 2Gb
  142.