Subversion Repositories Kolibri OS

Rev

Rev 6439 | Rev 6443 | 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. -no symbols (mapfile) for debug, see howtodebugtcc
  22. -no debug info for -g (kos32 linker imperfection)
  23. -__fastcall incompatible with other compilers. now stack freed by caller.
  24.  must fix i386-gen.c@490,572 (fixed in other branch https://github.com/mirror/tinycc)
  25.  
  26.  
  27. -using __attribute__((packed)) see test82. need naming struct twice as in kos32sys1.h
  28. -using __attribute__ ((alias xxx)) restricted only for non "static inline" functions
  29. -erroneous or "non TCC" member using in nested structs or unions can lead to compiler internal error
  30. -not working: default search path are ./include ./lib from executable
  31. --under KOS need to use -Bpath_to_ktcc
  32. --start.o not found using -B (kos) - put near your.c file
  33. -if static var sized more than 14096+ -> crash compiled .exe (kos)
  34. ---^ stack size set in menuet header at compile time tccmeos.c:177 about 4k
  35. -bench timing coarse (0s or 1s), no usec in newlib gettimeofday. OK
  36.  
  37. Tests status:
  38. asmtest +
  39. abitest not tested (embedding compiler)
  40. libtcctest not tested (embedding compiler)
  41. boundtest ----- alloca removed from tcc  libtcc.c:945 (really not worked)
  42. tcctest most test ok, some problems with long double
  43. vla_test.c +
  44.  
  45. pp/* +  (minor comment error in 13.s)
  46.  
  47. tests2/* : see below
  48.  
  49. // errata
  50. skippin' tests
  51. test76 fail dollars in identifiers
  52. test34 fail (array assignment not supported)
  53. test73 fail compile (no stdint.h), printfloat, ARM specific
  54. test46 no stdin - removed funtionality read from console, but file ops works
  55.  
  56.  
  57. libc:
  58. -no "finished" in title of console program after exit console - use con_exit()
  59. -used system memory allocator (4096 bytes minimum)
  60.  
  61.  
  62. libc not complete. overall status:
  63. no files:
  64. errno.h  - in stdio
  65. limits.h
  66. locale.h
  67. setjmp.h
  68. signall.h
  69. time.h  - can use get_tick_count()/100 from kos32sys1.h
  70. wchar.h
  71. wctype.h
  72.  
  73.  
  74.  
  75. functions absent list:
  76.  
  77. math.h
  78. frexp
  79. ldexp
  80. modf
  81. fmod
  82.  
  83. HUGE_VAL
  84.  
  85. stdio.h:
  86. remove
  87. rename
  88. tmpfile
  89. tmpnam
  90. freopen
  91. setbuf
  92. setvbuf
  93.  
  94.  
  95. stdlib.h:
  96. atof
  97. atol
  98. strtol, strtoul
  99. atexit
  100. getenv
  101. system
  102. bsearch
  103. qsort
  104. mblen
  105. mbtowc
  106. wctomb
  107. mbstowcs
  108. wcstombs
  109.  
  110. string.h
  111. strxfrm
  112.  
  113.  
  114.             Status or libc tests
  115.  
  116. ---FAILED---
  117. tstring - need to fix
  118.  
  119.  
  120. ---NOT TESTED---
  121. no library fns realized
  122. qsort
  123. strtol
  124. time
  125.  
  126. ---HANG---
  127. sscanf
  128. >TEST_F(0x1234p56) - no %a formats
  129.  
  130.  
  131. ---STACK IS SMALL---
  132. tstring
  133. strtodlong
  134. use new -stack=1280000 option
  135.  
  136.  
  137. --other--
  138. fscanf
  139. -?scanf ignores width specs, '*' and [chars], cant read %a float
  140. -%n counts as parameter
  141.  
  142. snprintf
  143. -some format misturbances
  144.  
  145. ungetc
  146. -ungetc fails if filepos == 0 - no tricks
  147.  
  148. all file ops limited to 2Gb
  149.