forked from KolibriOS/kolibrios
Add KX extension to tcc (autoload w/import table support), phase 2.2
Fixed bug in case unused libraries Improved align algorithm Filled kx folder including docs, libs git-svn-id: svn://kolibrios.org@9513 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ec81f654c0
commit
2f2a91947f
21
programs/develop/ktcc/trunk/kx/doc/en/Features.txt
Normal file
21
programs/develop/ktcc/trunk/kx/doc/en/Features.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
+ Library autoload
|
||||||
|
Now you don't need to think about having to load dependent libraries.
|
||||||
|
The most of this work will be done by TCC and Dll.obj
|
||||||
|
|
||||||
|
+ Easy linking using *.def files
|
||||||
|
All you need to do is connect the files describing the symbols
|
||||||
|
of the used libraries. This files have plain text format and may
|
||||||
|
easy created in any text editor. If one or more libraries use the same
|
||||||
|
symbols you may use name prefix to solve symbols conflicts
|
||||||
|
No more complicated of creating *.o and/or *.a files
|
||||||
|
|
||||||
|
+ Reduced image size
|
||||||
|
Since the library loader no longer needs to be placed in every application,
|
||||||
|
this reduces the size of the image. No more C layer neded, all dependent
|
||||||
|
libraries loading and also initialized automatically.
|
||||||
|
The compact format of the import table is also used.
|
||||||
|
|
||||||
|
+ Backward compatible
|
||||||
|
You don't need change your project. But the features described above will
|
||||||
|
require reconfiguration. Once you have tried it, you do not want to come back.
|
30
programs/develop/ktcc/trunk/kx/doc/ru/Features.txt
Normal file
30
programs/develop/ktcc/trunk/kx/doc/ru/Features.txt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
Версия расширения KX - 0.4.3
|
||||||
|
|
||||||
|
Обзор новых возможностей
|
||||||
|
|
||||||
|
+ Автозагрузка библиотек
|
||||||
|
Теперь Вам не нужно думать о загрузке зависимых библиотек.
|
||||||
|
Большая часть этой работы будет сделана TCC и Dll.obj.
|
||||||
|
|
||||||
|
+ Простое связывание с использованием *.def файлов
|
||||||
|
Все, что Вам нужно сделать, это подключить файлы с описанием символов
|
||||||
|
используемых библиотек. Эти файлы имеют простой текстовый формат и могут
|
||||||
|
легко создаваться в любом текстовом редакторе. Если одна или несколько
|
||||||
|
библиотек используют один или более одинаковых символов, Вы можете
|
||||||
|
использовать префикс имени для разрешения конфликтов символов.
|
||||||
|
Больше не нужно создавать и подключать сложные *.o и/или *.a файлы
|
||||||
|
зависимых бибилиотек (исключение - файлы crt0.o и libtcc.a, но они
|
||||||
|
поставляются в комлекте).
|
||||||
|
|
||||||
|
+ Уменьшенный размер образа
|
||||||
|
Поскольку загрузчик библиотек больше не нужно размещать в каждом
|
||||||
|
приложении, это уменьшает размер образа. Больше не нужен слой C
|
||||||
|
(C layer), все зависимые библиотеки загружаются, а также инициализируются
|
||||||
|
автоматически. Также используется компактный формат таблицы импорта.
|
||||||
|
|
||||||
|
+ Обратная совместимость
|
||||||
|
Если Вы по каким то причинам не хотите, либо пока не готовы использовать
|
||||||
|
новые возможности, изменять настройки проекта не требуется. Все будет
|
||||||
|
работать как раньше. Но для использования описанных выше особенностей
|
||||||
|
требуется несложная перенастройка проекта.
|
9
programs/develop/ktcc/trunk/kx/doc/ru/History.txt
Normal file
9
programs/develop/ktcc/trunk/kx/doc/ru/History.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
0.4.4
|
||||||
|
+ Исправлена ошибка при задании неиспользуемых библиотек
|
||||||
|
+ Улучшен алгоритм выравнивания после строк библиотек и символов, это
|
||||||
|
дополнительно уменьшит размер некоторых приложений
|
||||||
|
|
||||||
|
0.4.3
|
||||||
|
Первый релиз, с помощью которого собираются все приложениия использующие
|
||||||
|
tcc в автосборке
|
98
programs/develop/ktcc/trunk/kx/doc/ru/How to use.txt
Normal file
98
programs/develop/ktcc/trunk/kx/doc/ru/How to use.txt
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
|
||||||
|
Быстрый старт
|
||||||
|
Для использования новых возможностей предоставляемых расширением KX
|
||||||
|
необходимо использовать файл конфигурации tcc.conf в папке где расположен tcc
|
||||||
|
|
||||||
|
Этот файл перенастраивает директорию %ktcc_root%\ на %ktcc_root%\kx.
|
||||||
|
|
||||||
|
В данной директории присутствует папка lib с файлами
|
||||||
|
*.def, crt.0 и libtcc.a
|
||||||
|
|
||||||
|
Во избежание конфликтов бибилиотек с использованием возможностей
|
||||||
|
предоставляемых расширением KX рекомендуется использовать только одну
|
||||||
|
директорию с библиотеками. Если определено несколько директорий библиотек,
|
||||||
|
в каждой из них не должно быть конфликтных библиотек. Например,
|
||||||
|
при таком подключении библиотеки
|
||||||
|
|
||||||
|
-llibc
|
||||||
|
|
||||||
|
tcc ищет файлы в следующем порядке: libc.def, liblibc.def, liblibc.a
|
||||||
|
Обратите внимание, что все три варианта будут правильными и будет использован
|
||||||
|
первая найденная бибилиотека. Также обратите внимание, что для корректной
|
||||||
|
работы приложения с расширением KX все динамические библиотеки должны быть
|
||||||
|
обработаны только с *.def
|
||||||
|
|
||||||
|
В остальном tcc используется как обычно (см. справку tcc)
|
||||||
|
Примечание:
|
||||||
|
ключ -nobss был удален, так как он не имеет смысла (ранее генерировавшаяся
|
||||||
|
bss секция заполнялась нулями и занимала ненужное место в файле, эта секция
|
||||||
|
не должна содержаться в образе и ядро инициализирует эту часть нялями
|
||||||
|
автоматически при загрузке)
|
||||||
|
|
||||||
|
Файлы определения символов
|
||||||
|
Расширение KX использует файлы определений символов (*.def). Файлы *.def
|
||||||
|
используют простой формат и могут создваться и редактироваться в любом
|
||||||
|
удобном текстовом редакторе. Структура файла *.def описана ниже.
|
||||||
|
|
||||||
|
; Комментарии начинаются точкой с запятой и игнорируются при обработке
|
||||||
|
;
|
||||||
|
; Первая строка должна начинаться с ключевого слова LIBRARY с указанием
|
||||||
|
; имени библиотки c расширением (не более 3 симоволов после точки)
|
||||||
|
LIBRARY libname.obj
|
||||||
|
|
||||||
|
; На следующей строке следует ключевое слово EXPORTS и
|
||||||
|
; опциональный ключ prefix
|
||||||
|
EXPORTS [prefix]
|
||||||
|
|
||||||
|
; если задан ключ prefix, то во всех символах должен использоваться
|
||||||
|
; префикс из имени библиотеки (без расширения) со следующим за ним символом
|
||||||
|
; подчеркивания. Префикс будет отброшен при постоении таблицы импорта
|
||||||
|
; Например, для библиотеки http.obj префикс должен быть http_
|
||||||
|
; из символа http_get в таблицу импорта будет записан символ get
|
||||||
|
[libname_]entry1
|
||||||
|
[libname_]entry2
|
||||||
|
|
||||||
|
; все остальные символы библиотеки
|
||||||
|
|
||||||
|
Проверка поддержки расширения KX
|
||||||
|
Для проверки, что tcc поддерживает расширение KX:
|
||||||
|
1. в командной строке наберите
|
||||||
|
tcc -v
|
||||||
|
Строка ниже означает, что имеется поддерка расширения KX
|
||||||
|
tcc version 0.9.26 (i386 KolibriOS/KX extension)
|
||||||
|
|
||||||
|
2. В коде для условной компиляции используйте директивы препроцессора
|
||||||
|
проверки предопределенного макроса __KX__, например
|
||||||
|
#ifdef __KX__
|
||||||
|
// код который должен компилироваться только с расширением KX
|
||||||
|
#else
|
||||||
|
// код, который не зависит от расширения KX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Обратите внимание, что в настоящее всемя этот макрос показывает, что
|
||||||
|
компилятор поддерживает расширение KX. По умолчанию этот макрос будет
|
||||||
|
определен всегда, даже если Вы по каким то причинам не желаете
|
||||||
|
использовать новые преимущества. При использовании текущих
|
||||||
|
особенностей разделять код описанным в примере выше способом в
|
||||||
|
большинстве случаев не требуется.
|
||||||
|
|
||||||
|
Обеспечение совместимости
|
||||||
|
Если для обеспечения совместимости необходимо отделить код, чтобы его можно
|
||||||
|
было использовать как с расширением KX, так и без него, Вы можете определить
|
||||||
|
дополнительный макрос и таким образом разделять код на нужные участки,
|
||||||
|
например. Настоятельно рекомендуется использовать только код с поддержкой
|
||||||
|
расширения KX.
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
#ifdef _C_LAYER
|
||||||
|
// Код который выполняется без поддержки расширения KX
|
||||||
|
/ использующий старый метод загрузки
|
||||||
|
if(!kolibri_libimg_init()){ // Загружаем libimg.obj
|
||||||
|
notify_show("Libimg.obj not loaded!' -E");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
...
|
||||||
|
|
98
programs/develop/ktcc/trunk/kx/lib/box.def
Normal file
98
programs/develop/ktcc/trunk/kx/lib/box.def
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
LIBRARY box_lib.obj
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
edit_box
|
||||||
|
edit_box_key
|
||||||
|
edit_box_mouse
|
||||||
|
edit_box_set_text
|
||||||
|
version_ed
|
||||||
|
init_checkbox2
|
||||||
|
check_box_draw2
|
||||||
|
check_box_mouse2
|
||||||
|
version_ch2
|
||||||
|
option_box_draw
|
||||||
|
option_box_mouse
|
||||||
|
version_op
|
||||||
|
scrollbar_v_draw
|
||||||
|
scrollbar_v_mouse
|
||||||
|
scrollbar_h_draw
|
||||||
|
scrollbar_h_mouse
|
||||||
|
version_scrollbar
|
||||||
|
dbutton_draw
|
||||||
|
dbutton_mouse
|
||||||
|
version_dbutton
|
||||||
|
menu_bar_draw
|
||||||
|
menu_bar_mouse
|
||||||
|
menu_bar_activate
|
||||||
|
version_menu_bar
|
||||||
|
FileBrowser_draw
|
||||||
|
FileBrowser_mouse
|
||||||
|
FileBrowser_key
|
||||||
|
version_FileBrowser
|
||||||
|
tl_data_init
|
||||||
|
tl_data_clear
|
||||||
|
tl_info_clear
|
||||||
|
tl_key
|
||||||
|
tl_mouse
|
||||||
|
tl_draw
|
||||||
|
tl_info_undo
|
||||||
|
tl_info_redo
|
||||||
|
tl_node_add
|
||||||
|
tl_node_set_data
|
||||||
|
tl_node_get_data
|
||||||
|
tl_node_delete
|
||||||
|
tl_cur_beg
|
||||||
|
tl_cur_next
|
||||||
|
tl_cur_perv
|
||||||
|
tl_node_close_open
|
||||||
|
tl_node_lev_inc
|
||||||
|
tl_node_lev_dec
|
||||||
|
tl_node_move_up
|
||||||
|
tl_node_move_down
|
||||||
|
tl_node_poi_get_info
|
||||||
|
tl_node_poi_get_next_info
|
||||||
|
tl_node_poi_get_data
|
||||||
|
tl_save_mem
|
||||||
|
tl_load_mem
|
||||||
|
tl_get_mem_size
|
||||||
|
version_tree_list
|
||||||
|
PathShow_prepare
|
||||||
|
PathShow_draw
|
||||||
|
version_PathShow
|
||||||
|
ted_but_sumb_upper
|
||||||
|
ted_but_sumb_lover
|
||||||
|
ted_but_convert_by_table
|
||||||
|
ted_can_save
|
||||||
|
ted_clear
|
||||||
|
ted_delete
|
||||||
|
ted_draw
|
||||||
|
ted_init
|
||||||
|
ted_init_scroll_bars
|
||||||
|
ted_init_syntax_file
|
||||||
|
ted_is_select
|
||||||
|
ted_key
|
||||||
|
ted_mouse
|
||||||
|
ted_open_file
|
||||||
|
ted_save_file
|
||||||
|
ted_text_add
|
||||||
|
ted_but_select_word
|
||||||
|
ted_but_cut
|
||||||
|
ted_but_copy
|
||||||
|
ted_but_paste
|
||||||
|
ted_but_undo
|
||||||
|
ted_but_redo
|
||||||
|
ted_but_reverse
|
||||||
|
ted_but_find
|
||||||
|
ted_but_replace
|
||||||
|
ted_text_colored
|
||||||
|
ted_go_to_position
|
||||||
|
version_text_edit
|
||||||
|
frame_draw
|
||||||
|
version_frame
|
||||||
|
progressbar_draw
|
||||||
|
progressbar_progress
|
||||||
|
tooltip_init
|
||||||
|
tooltip_delete
|
||||||
|
tooltip_test_show
|
||||||
|
tooltip_mouse
|
||||||
|
get_font_size
|
25
programs/develop/ktcc/trunk/kx/lib/console.def
Normal file
25
programs/develop/ktcc/trunk/kx/lib/console.def
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
LIBRARY console.obj
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
;START
|
||||||
|
con_init
|
||||||
|
con_write_asciiz
|
||||||
|
con_write_string
|
||||||
|
con_printf
|
||||||
|
con_exit
|
||||||
|
;version
|
||||||
|
con_get_flags
|
||||||
|
con_set_flags
|
||||||
|
con_kbhit
|
||||||
|
con_getch
|
||||||
|
con_getch2
|
||||||
|
con_gets
|
||||||
|
con_gets2
|
||||||
|
con_get_font_height
|
||||||
|
con_get_cursor_height
|
||||||
|
con_set_cursor_height
|
||||||
|
con_cls
|
||||||
|
con_get_cursor_pos
|
||||||
|
con_set_cursor_pos
|
||||||
|
con_set_title
|
||||||
|
con_get_input
|
BIN
programs/develop/ktcc/trunk/kx/lib/crt0.o
Normal file
BIN
programs/develop/ktcc/trunk/kx/lib/crt0.o
Normal file
Binary file not shown.
14
programs/develop/ktcc/trunk/kx/lib/dialog.def
Normal file
14
programs/develop/ktcc/trunk/kx/lib/dialog.def
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
LIBRARY proc_lib.obj
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
ColorDialog_init
|
||||||
|
OpenDialog_start
|
||||||
|
OpenDialog_init
|
||||||
|
OpenDialog_set_file_ext
|
||||||
|
OpenDialog_set_file_name
|
||||||
|
OpenDialog_start
|
||||||
|
Version_OpenDialog
|
||||||
|
Version_ColorDialog
|
||||||
|
|
||||||
|
;EXPORTS prefix
|
||||||
|
;proc_lib_version <<= need local (2x underscores)
|
9
programs/develop/ktcc/trunk/kx/lib/http.def
Normal file
9
programs/develop/ktcc/trunk/kx/lib/http.def
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
LIBRARY http.obj
|
||||||
|
|
||||||
|
EXPORTS prefix
|
||||||
|
http_get
|
||||||
|
http_head
|
||||||
|
http_post
|
||||||
|
http_receive
|
||||||
|
http_send
|
||||||
|
http_free
|
20
programs/develop/ktcc/trunk/kx/lib/img.def
Normal file
20
programs/develop/ktcc/trunk/kx/lib/img.def
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
LIBRARY libimg.obj
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
img_blend
|
||||||
|
img_convert
|
||||||
|
img_count
|
||||||
|
img_create
|
||||||
|
img_decode
|
||||||
|
img_destroy
|
||||||
|
img_destroy_layer
|
||||||
|
img_draw
|
||||||
|
img_encode
|
||||||
|
img_flip
|
||||||
|
img_flip_layer
|
||||||
|
img_resize_data
|
||||||
|
img_rotate
|
||||||
|
img_rotate_layer
|
||||||
|
img_scale
|
||||||
|
img_to_rgb
|
||||||
|
img_to_rgb2
|
177
programs/develop/ktcc/trunk/kx/lib/libc.def
Normal file
177
programs/develop/ktcc/trunk/kx/lib/libc.def
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
LIBRARY libc.obj
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
;____STDIO______
|
||||||
|
clearerr
|
||||||
|
debug_printf
|
||||||
|
fclose
|
||||||
|
feof
|
||||||
|
ferror
|
||||||
|
fflush
|
||||||
|
fgetc
|
||||||
|
fgetpos
|
||||||
|
fgets
|
||||||
|
fopen
|
||||||
|
fprintf
|
||||||
|
fputc
|
||||||
|
fputs
|
||||||
|
fread
|
||||||
|
freopen
|
||||||
|
fscanf
|
||||||
|
fseek
|
||||||
|
fsetpos
|
||||||
|
ftell
|
||||||
|
fwrite
|
||||||
|
getchar
|
||||||
|
gets
|
||||||
|
perror
|
||||||
|
printf
|
||||||
|
puts
|
||||||
|
remove
|
||||||
|
rename
|
||||||
|
rewind
|
||||||
|
scanf
|
||||||
|
setbuf
|
||||||
|
setvbuf
|
||||||
|
snprintf
|
||||||
|
sprintf
|
||||||
|
sscanf
|
||||||
|
tmpfile
|
||||||
|
tmpnam
|
||||||
|
vfscanf
|
||||||
|
vprintf
|
||||||
|
vfscanf
|
||||||
|
vsprintf
|
||||||
|
vsnprintf
|
||||||
|
vsscanf
|
||||||
|
ungetc
|
||||||
|
;____STDLIB____
|
||||||
|
abs
|
||||||
|
atoi
|
||||||
|
atol
|
||||||
|
atoll
|
||||||
|
atof
|
||||||
|
calloc
|
||||||
|
exit
|
||||||
|
free
|
||||||
|
itoa
|
||||||
|
labs
|
||||||
|
llabs
|
||||||
|
malloc
|
||||||
|
realloc
|
||||||
|
strtol
|
||||||
|
srand
|
||||||
|
rand
|
||||||
|
qsort
|
||||||
|
strtod
|
||||||
|
__assert_fail
|
||||||
|
;____STRING____
|
||||||
|
;memcpy
|
||||||
|
memchr
|
||||||
|
memcmp
|
||||||
|
!memmove
|
||||||
|
!memset
|
||||||
|
strncat
|
||||||
|
strchr
|
||||||
|
strcat
|
||||||
|
strcmp
|
||||||
|
strcoll
|
||||||
|
strcpy
|
||||||
|
strcspn
|
||||||
|
strdup
|
||||||
|
strerror
|
||||||
|
strlen
|
||||||
|
strncat
|
||||||
|
strncmp
|
||||||
|
strncpy
|
||||||
|
strrchr
|
||||||
|
strrev
|
||||||
|
strspn
|
||||||
|
strstr
|
||||||
|
strtok
|
||||||
|
strxfrm
|
||||||
|
_errno
|
||||||
|
;____SYS____
|
||||||
|
closedir
|
||||||
|
opendir
|
||||||
|
readdir
|
||||||
|
rewinddir
|
||||||
|
seekdir
|
||||||
|
telldir
|
||||||
|
getcwd
|
||||||
|
mkdir
|
||||||
|
rmdir
|
||||||
|
setcwd
|
||||||
|
getcwd
|
||||||
|
;____SOCKET____
|
||||||
|
socket
|
||||||
|
close
|
||||||
|
bind
|
||||||
|
listen
|
||||||
|
connect
|
||||||
|
accept
|
||||||
|
send
|
||||||
|
recv
|
||||||
|
setsockopt
|
||||||
|
socketpair
|
||||||
|
;____UNISTD____
|
||||||
|
;____MATH____
|
||||||
|
acosh
|
||||||
|
asinh
|
||||||
|
atanh
|
||||||
|
acosh
|
||||||
|
frexp
|
||||||
|
hypot
|
||||||
|
ldexp
|
||||||
|
sinh
|
||||||
|
tanh
|
||||||
|
acos
|
||||||
|
asin
|
||||||
|
atan
|
||||||
|
atan2
|
||||||
|
ceil
|
||||||
|
cos
|
||||||
|
exp
|
||||||
|
fabs
|
||||||
|
floor
|
||||||
|
fmod
|
||||||
|
log
|
||||||
|
modf
|
||||||
|
modfl
|
||||||
|
pow
|
||||||
|
pow2
|
||||||
|
pow10
|
||||||
|
;____LONGJMP____
|
||||||
|
longjmp
|
||||||
|
setjmp
|
||||||
|
;____CTYPE____
|
||||||
|
__is
|
||||||
|
tolower
|
||||||
|
toupper
|
||||||
|
;___CONIO___
|
||||||
|
con_set_title
|
||||||
|
con_init
|
||||||
|
con_init_opt
|
||||||
|
con_write_asciiz
|
||||||
|
con_write_string
|
||||||
|
con_printf
|
||||||
|
con_exit
|
||||||
|
con_get_flags
|
||||||
|
con_set_flags
|
||||||
|
con_kbhit
|
||||||
|
con_getch
|
||||||
|
con_getch2
|
||||||
|
con_gets
|
||||||
|
con_gets2
|
||||||
|
con_get_font_height
|
||||||
|
con_get_cursor_height
|
||||||
|
con_set_cursor_height
|
||||||
|
con_cls
|
||||||
|
con_get_cursor_pos
|
||||||
|
con_set_cursor_pos
|
||||||
|
;____TIME____
|
||||||
|
mktime
|
||||||
|
time
|
||||||
|
localtime
|
||||||
|
asctime
|
||||||
|
difftime
|
BIN
programs/develop/ktcc/trunk/kx/lib/libck.a
Normal file
BIN
programs/develop/ktcc/trunk/kx/lib/libck.a
Normal file
Binary file not shown.
BIN
programs/develop/ktcc/trunk/kx/lib/libcryptal.a
Normal file
BIN
programs/develop/ktcc/trunk/kx/lib/libcryptal.a
Normal file
Binary file not shown.
BIN
programs/develop/ktcc/trunk/kx/lib/libtcc.a
Normal file
BIN
programs/develop/ktcc/trunk/kx/lib/libtcc.a
Normal file
Binary file not shown.
751
programs/develop/ktcc/trunk/kx/lib/mbedtls.def
Normal file
751
programs/develop/ktcc/trunk/kx/lib/mbedtls.def
Normal file
@ -0,0 +1,751 @@
|
|||||||
|
LIBRARY mbedtls.obj
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
mbedtls_aes_crypt_cbc
|
||||||
|
mbedtls_aes_crypt_cfb128
|
||||||
|
mbedtls_aes_crypt_cfb8
|
||||||
|
mbedtls_aes_crypt_ctr
|
||||||
|
mbedtls_aes_crypt_ecb
|
||||||
|
mbedtls_aes_crypt_ofb
|
||||||
|
mbedtls_aes_crypt_xts
|
||||||
|
mbedtls_aes_decrypt
|
||||||
|
mbedtls_aes_encrypt
|
||||||
|
mbedtls_aes_free
|
||||||
|
mbedtls_aes_init
|
||||||
|
mbedtls_aes_self_test
|
||||||
|
mbedtls_aes_setkey_dec
|
||||||
|
mbedtls_aes_setkey_enc
|
||||||
|
mbedtls_aes_xts_free
|
||||||
|
mbedtls_aes_xts_init
|
||||||
|
mbedtls_aes_xts_setkey_dec
|
||||||
|
mbedtls_aes_xts_setkey_enc
|
||||||
|
mbedtls_arc4_crypt
|
||||||
|
mbedtls_arc4_free
|
||||||
|
mbedtls_arc4_init
|
||||||
|
mbedtls_arc4_self_test
|
||||||
|
mbedtls_arc4_setup
|
||||||
|
mbedtls_asn1_find_named_data
|
||||||
|
mbedtls_asn1_free_named_data
|
||||||
|
mbedtls_asn1_free_named_data_list
|
||||||
|
mbedtls_asn1_get_alg
|
||||||
|
mbedtls_asn1_get_alg_null
|
||||||
|
mbedtls_asn1_get_bitstring
|
||||||
|
mbedtls_asn1_get_bitstring_null
|
||||||
|
mbedtls_asn1_get_bool
|
||||||
|
mbedtls_asn1_get_int
|
||||||
|
mbedtls_asn1_get_len
|
||||||
|
mbedtls_asn1_get_mpi
|
||||||
|
mbedtls_asn1_get_sequence_of
|
||||||
|
mbedtls_asn1_get_tag
|
||||||
|
mbedtls_asn1_store_named_data
|
||||||
|
mbedtls_asn1_write_algorithm_identifier
|
||||||
|
mbedtls_asn1_write_bitstring
|
||||||
|
mbedtls_asn1_write_bool
|
||||||
|
mbedtls_asn1_write_ia5_string
|
||||||
|
mbedtls_asn1_write_int
|
||||||
|
mbedtls_asn1_write_len
|
||||||
|
mbedtls_asn1_write_mpi
|
||||||
|
mbedtls_asn1_write_null
|
||||||
|
mbedtls_asn1_write_octet_string
|
||||||
|
mbedtls_asn1_write_oid
|
||||||
|
mbedtls_asn1_write_printable_string
|
||||||
|
mbedtls_asn1_write_raw_buffer
|
||||||
|
mbedtls_asn1_write_tag
|
||||||
|
mbedtls_asn1_write_tagged_string
|
||||||
|
mbedtls_asn1_write_utf8_string
|
||||||
|
mbedtls_base64_decode
|
||||||
|
mbedtls_base64_encode
|
||||||
|
mbedtls_base64_self_test
|
||||||
|
mbedtls_blowfish_crypt_cbc
|
||||||
|
mbedtls_blowfish_crypt_cfb64
|
||||||
|
mbedtls_blowfish_crypt_ctr
|
||||||
|
mbedtls_blowfish_crypt_ecb
|
||||||
|
mbedtls_blowfish_free
|
||||||
|
mbedtls_blowfish_init
|
||||||
|
mbedtls_blowfish_setkey
|
||||||
|
mbedtls_camellia_crypt_cbc
|
||||||
|
mbedtls_camellia_crypt_cfb128
|
||||||
|
mbedtls_camellia_crypt_ctr
|
||||||
|
mbedtls_camellia_crypt_ecb
|
||||||
|
mbedtls_camellia_free
|
||||||
|
mbedtls_camellia_init
|
||||||
|
mbedtls_camellia_self_test
|
||||||
|
mbedtls_camellia_setkey_dec
|
||||||
|
mbedtls_camellia_setkey_enc
|
||||||
|
mbedtls_ccm_auth_decrypt
|
||||||
|
mbedtls_ccm_encrypt_and_tag
|
||||||
|
mbedtls_ccm_free
|
||||||
|
mbedtls_ccm_init
|
||||||
|
mbedtls_ccm_self_test
|
||||||
|
mbedtls_ccm_setkey
|
||||||
|
mbedtls_ccm_star_auth_decrypt
|
||||||
|
mbedtls_ccm_star_encrypt_and_tag
|
||||||
|
mbedtls_chacha20_crypt
|
||||||
|
mbedtls_chacha20_free
|
||||||
|
mbedtls_chacha20_init
|
||||||
|
mbedtls_chacha20_self_test
|
||||||
|
mbedtls_chacha20_setkey
|
||||||
|
mbedtls_chacha20_starts
|
||||||
|
mbedtls_chacha20_update
|
||||||
|
mbedtls_chachapoly_auth_decrypt
|
||||||
|
mbedtls_chachapoly_encrypt_and_tag
|
||||||
|
mbedtls_chachapoly_finish
|
||||||
|
mbedtls_chachapoly_free
|
||||||
|
mbedtls_chachapoly_init
|
||||||
|
mbedtls_chachapoly_self_test
|
||||||
|
mbedtls_chachapoly_setkey
|
||||||
|
mbedtls_chachapoly_starts
|
||||||
|
mbedtls_chachapoly_update
|
||||||
|
mbedtls_chachapoly_update_aad
|
||||||
|
mbedtls_cipher_auth_decrypt
|
||||||
|
mbedtls_cipher_auth_encrypt
|
||||||
|
mbedtls_cipher_check_tag
|
||||||
|
mbedtls_cipher_crypt
|
||||||
|
mbedtls_cipher_finish
|
||||||
|
mbedtls_cipher_free
|
||||||
|
mbedtls_cipher_info_from_string
|
||||||
|
mbedtls_cipher_info_from_type
|
||||||
|
mbedtls_cipher_info_from_values
|
||||||
|
mbedtls_cipher_init
|
||||||
|
mbedtls_cipher_list
|
||||||
|
mbedtls_cipher_reset
|
||||||
|
mbedtls_cipher_set_iv
|
||||||
|
mbedtls_cipher_setkey
|
||||||
|
mbedtls_cipher_set_padding_mode
|
||||||
|
mbedtls_cipher_setup
|
||||||
|
mbedtls_cipher_update
|
||||||
|
mbedtls_cipher_update_ad
|
||||||
|
mbedtls_cipher_write_tag
|
||||||
|
mbedtls_ctr_drbg_free
|
||||||
|
mbedtls_ctr_drbg_init
|
||||||
|
mbedtls_ctr_drbg_random
|
||||||
|
mbedtls_ctr_drbg_random_with_add
|
||||||
|
mbedtls_ctr_drbg_reseed
|
||||||
|
mbedtls_ctr_drbg_seed
|
||||||
|
mbedtls_ctr_drbg_seed_entropy_len
|
||||||
|
mbedtls_ctr_drbg_self_test
|
||||||
|
mbedtls_ctr_drbg_set_entropy_len
|
||||||
|
mbedtls_ctr_drbg_set_prediction_resistance
|
||||||
|
mbedtls_ctr_drbg_set_reseed_interval
|
||||||
|
mbedtls_ctr_drbg_update
|
||||||
|
mbedtls_ctr_drbg_update_ret
|
||||||
|
mbedtls_debug_print_buf
|
||||||
|
mbedtls_debug_print_crt
|
||||||
|
mbedtls_debug_print_ecp
|
||||||
|
mbedtls_debug_printf_ecdh
|
||||||
|
mbedtls_debug_print_mpi
|
||||||
|
mbedtls_debug_print_msg
|
||||||
|
mbedtls_debug_print_ret
|
||||||
|
mbedtls_debug_set_threshold
|
||||||
|
mbedtls_des3_crypt_cbc
|
||||||
|
mbedtls_des3_crypt_ecb
|
||||||
|
mbedtls_des3_free
|
||||||
|
mbedtls_des3_init
|
||||||
|
mbedtls_des3_set2key_dec
|
||||||
|
mbedtls_des3_set2key_enc
|
||||||
|
mbedtls_des3_set3key_dec
|
||||||
|
mbedtls_des3_set3key_enc
|
||||||
|
mbedtls_des_crypt_cbc
|
||||||
|
mbedtls_des_crypt_ecb
|
||||||
|
mbedtls_des_free
|
||||||
|
mbedtls_des_init
|
||||||
|
mbedtls_des_key_check_key_parity
|
||||||
|
mbedtls_des_key_check_weak
|
||||||
|
mbedtls_des_key_set_parity
|
||||||
|
mbedtls_des_self_test
|
||||||
|
mbedtls_des_setkey
|
||||||
|
mbedtls_des_setkey_dec
|
||||||
|
mbedtls_des_setkey_enc
|
||||||
|
mbedtls_dhm_calc_secret
|
||||||
|
mbedtls_dhm_free
|
||||||
|
mbedtls_dhm_init
|
||||||
|
mbedtls_dhm_make_params
|
||||||
|
mbedtls_dhm_make_public
|
||||||
|
mbedtls_dhm_parse_dhm
|
||||||
|
mbedtls_dhm_read_params
|
||||||
|
mbedtls_dhm_read_public
|
||||||
|
mbedtls_dhm_self_test
|
||||||
|
mbedtls_dhm_set_group
|
||||||
|
mbedtls_ecdh_calc_secret
|
||||||
|
mbedtls_ecdh_compute_shared
|
||||||
|
mbedtls_ecdh_free
|
||||||
|
mbedtls_ecdh_gen_public
|
||||||
|
mbedtls_ecdh_get_params
|
||||||
|
mbedtls_ecdh_init
|
||||||
|
mbedtls_ecdh_make_params
|
||||||
|
mbedtls_ecdh_make_public
|
||||||
|
mbedtls_ecdh_read_params
|
||||||
|
mbedtls_ecdh_read_public
|
||||||
|
mbedtls_ecdh_setup
|
||||||
|
mbedtls_ecdsa_free
|
||||||
|
mbedtls_ecdsa_from_keypair
|
||||||
|
mbedtls_ecdsa_genkey
|
||||||
|
mbedtls_ecdsa_init
|
||||||
|
mbedtls_ecdsa_read_signature
|
||||||
|
mbedtls_ecdsa_read_signature_restartable
|
||||||
|
mbedtls_ecdsa_sign
|
||||||
|
mbedtls_ecdsa_sign_det
|
||||||
|
mbedtls_ecdsa_sign_det_ext
|
||||||
|
mbedtls_ecdsa_verify
|
||||||
|
mbedtls_ecdsa_write_signature
|
||||||
|
mbedtls_ecdsa_write_signature_det
|
||||||
|
mbedtls_ecdsa_write_signature_restartable
|
||||||
|
mbedtls_ecp_check_privkey
|
||||||
|
mbedtls_ecp_check_pubkey
|
||||||
|
mbedtls_ecp_check_pub_priv
|
||||||
|
mbedtls_ecp_copy
|
||||||
|
mbedtls_ecp_curve_info_from_grp_id
|
||||||
|
mbedtls_ecp_curve_info_from_name
|
||||||
|
mbedtls_ecp_curve_info_from_tls_id
|
||||||
|
mbedtls_ecp_curve_list
|
||||||
|
mbedtls_ecp_gen_key
|
||||||
|
mbedtls_ecp_gen_keypair
|
||||||
|
mbedtls_ecp_gen_keypair_base
|
||||||
|
mbedtls_ecp_gen_privkey
|
||||||
|
mbedtls_ecp_group_copy
|
||||||
|
mbedtls_ecp_group_free
|
||||||
|
mbedtls_ecp_group_init
|
||||||
|
mbedtls_ecp_group_load
|
||||||
|
mbedtls_ecp_grp_id_list
|
||||||
|
mbedtls_ecp_is_zero
|
||||||
|
mbedtls_ecp_keypair_free
|
||||||
|
mbedtls_ecp_keypair_init
|
||||||
|
mbedtls_ecp_mul
|
||||||
|
mbedtls_ecp_muladd
|
||||||
|
mbedtls_ecp_muladd_restartable
|
||||||
|
mbedtls_ecp_mul_restartable
|
||||||
|
mbedtls_ecp_point_cmp
|
||||||
|
mbedtls_ecp_point_free
|
||||||
|
mbedtls_ecp_point_init
|
||||||
|
mbedtls_ecp_point_read_binary
|
||||||
|
mbedtls_ecp_point_read_string
|
||||||
|
mbedtls_ecp_point_write_binary
|
||||||
|
mbedtls_ecp_self_test
|
||||||
|
mbedtls_ecp_set_zero
|
||||||
|
mbedtls_ecp_tls_read_group
|
||||||
|
mbedtls_ecp_tls_read_group_id
|
||||||
|
mbedtls_ecp_tls_read_point
|
||||||
|
mbedtls_ecp_tls_write_group
|
||||||
|
mbedtls_ecp_tls_write_point
|
||||||
|
mbedtls_entropy_add_source
|
||||||
|
mbedtls_entropy_free
|
||||||
|
mbedtls_entropy_func
|
||||||
|
mbedtls_entropy_gather
|
||||||
|
mbedtls_entropy_init
|
||||||
|
mbedtls_entropy_self_test
|
||||||
|
mbedtls_entropy_update_manual
|
||||||
|
mbedtls_gcm_auth_decrypt
|
||||||
|
mbedtls_gcm_crypt_and_tag
|
||||||
|
mbedtls_gcm_finish
|
||||||
|
mbedtls_gcm_free
|
||||||
|
mbedtls_gcm_init
|
||||||
|
mbedtls_gcm_self_test
|
||||||
|
mbedtls_gcm_setkey
|
||||||
|
mbedtls_gcm_starts
|
||||||
|
mbedtls_gcm_update
|
||||||
|
mbedtls_hkdf
|
||||||
|
mbedtls_hkdf_expand
|
||||||
|
mbedtls_hkdf_extract
|
||||||
|
mbedtls_hmac_drbg_free
|
||||||
|
mbedtls_hmac_drbg_init
|
||||||
|
mbedtls_hmac_drbg_random
|
||||||
|
mbedtls_hmac_drbg_random_with_add
|
||||||
|
mbedtls_hmac_drbg_reseed
|
||||||
|
mbedtls_hmac_drbg_seed
|
||||||
|
mbedtls_hmac_drbg_seed_buf
|
||||||
|
mbedtls_hmac_drbg_self_test
|
||||||
|
mbedtls_hmac_drbg_set_entropy_len
|
||||||
|
mbedtls_hmac_drbg_set_prediction_resistance
|
||||||
|
mbedtls_hmac_drbg_set_reseed_interval
|
||||||
|
mbedtls_hmac_drbg_update
|
||||||
|
mbedtls_hmac_drbg_update_ret
|
||||||
|
mbedtls_init
|
||||||
|
mbedtls_internal_aes_decrypt
|
||||||
|
mbedtls_internal_aes_encrypt
|
||||||
|
mbedtls_internal_md5_process
|
||||||
|
mbedtls_internal_ripemd160_process
|
||||||
|
mbedtls_internal_sha1_process
|
||||||
|
mbedtls_internal_sha256_process
|
||||||
|
mbedtls_internal_sha512_process
|
||||||
|
mbedtls_md
|
||||||
|
mbedtls_md5
|
||||||
|
mbedtls_md5_clone
|
||||||
|
mbedtls_md5_finish
|
||||||
|
mbedtls_md5_finish_ret
|
||||||
|
mbedtls_md5_free
|
||||||
|
mbedtls_md5_init
|
||||||
|
mbedtls_md5_process
|
||||||
|
mbedtls_md5_ret
|
||||||
|
mbedtls_md5_self_test
|
||||||
|
mbedtls_md5_starts
|
||||||
|
mbedtls_md5_starts_ret
|
||||||
|
mbedtls_md5_update
|
||||||
|
mbedtls_md5_update_ret
|
||||||
|
mbedtls_md_clone
|
||||||
|
mbedtls_md_finish
|
||||||
|
mbedtls_md_free
|
||||||
|
mbedtls_md_get_name
|
||||||
|
mbedtls_md_get_size
|
||||||
|
mbedtls_md_get_type
|
||||||
|
mbedtls_md_hmac
|
||||||
|
mbedtls_md_hmac_finish
|
||||||
|
mbedtls_md_hmac_reset
|
||||||
|
mbedtls_md_hmac_starts
|
||||||
|
mbedtls_md_hmac_update
|
||||||
|
mbedtls_md_info_from_string
|
||||||
|
mbedtls_md_info_from_type
|
||||||
|
mbedtls_md_init
|
||||||
|
mbedtls_md_init_ctx
|
||||||
|
mbedtls_md_list
|
||||||
|
mbedtls_md_process
|
||||||
|
mbedtls_md_setup
|
||||||
|
mbedtls_md_starts
|
||||||
|
mbedtls_md_update
|
||||||
|
mbedtls_mpi_add_abs
|
||||||
|
mbedtls_mpi_add_int
|
||||||
|
mbedtls_mpi_add_mpi
|
||||||
|
mbedtls_mpi_bitlen
|
||||||
|
mbedtls_mpi_cmp_abs
|
||||||
|
mbedtls_mpi_cmp_int
|
||||||
|
mbedtls_mpi_cmp_mpi
|
||||||
|
mbedtls_mpi_copy
|
||||||
|
mbedtls_mpi_div_int
|
||||||
|
mbedtls_mpi_div_mpi
|
||||||
|
mbedtls_mpi_exp_mod
|
||||||
|
mbedtls_mpi_fill_random
|
||||||
|
mbedtls_mpi_free
|
||||||
|
mbedtls_mpi_gcd
|
||||||
|
mbedtls_mpi_gen_prime
|
||||||
|
mbedtls_mpi_get_bit
|
||||||
|
mbedtls_mpi_grow
|
||||||
|
mbedtls_mpi_init
|
||||||
|
mbedtls_mpi_inv_mod
|
||||||
|
mbedtls_mpi_is_prime
|
||||||
|
mbedtls_mpi_is_prime_ext
|
||||||
|
mbedtls_mpi_lsb
|
||||||
|
mbedtls_mpi_lset
|
||||||
|
mbedtls_mpi_lt_mpi_ct
|
||||||
|
mbedtls_mpi_mod_int
|
||||||
|
mbedtls_mpi_mod_mpi
|
||||||
|
mbedtls_mpi_mul_int
|
||||||
|
mbedtls_mpi_mul_mpi
|
||||||
|
mbedtls_mpi_read_binary
|
||||||
|
mbedtls_mpi_read_string
|
||||||
|
mbedtls_mpi_safe_cond_assign
|
||||||
|
mbedtls_mpi_safe_cond_swap
|
||||||
|
mbedtls_mpi_self_test
|
||||||
|
mbedtls_mpi_set_bit
|
||||||
|
mbedtls_mpi_shift_l
|
||||||
|
mbedtls_mpi_shift_r
|
||||||
|
mbedtls_mpi_shrink
|
||||||
|
mbedtls_mpi_size
|
||||||
|
mbedtls_mpi_sub_abs
|
||||||
|
mbedtls_mpi_sub_int
|
||||||
|
mbedtls_mpi_sub_mpi
|
||||||
|
mbedtls_mpi_swap
|
||||||
|
mbedtls_mpi_write_binary
|
||||||
|
mbedtls_mpi_write_string
|
||||||
|
mbedtls_net_connect
|
||||||
|
mbedtls_net_free
|
||||||
|
mbedtls_net_init
|
||||||
|
mbedtls_net_recv
|
||||||
|
mbedtls_net_send
|
||||||
|
mbedtls_oid_get_attr_short_name
|
||||||
|
mbedtls_oid_get_cipher_alg
|
||||||
|
mbedtls_oid_get_ec_grp
|
||||||
|
mbedtls_oid_get_extended_key_usage
|
||||||
|
mbedtls_oid_get_md_alg
|
||||||
|
mbedtls_oid_get_md_hmac
|
||||||
|
mbedtls_oid_get_numeric_string
|
||||||
|
mbedtls_oid_get_oid_by_ec_grp
|
||||||
|
mbedtls_oid_get_oid_by_md
|
||||||
|
mbedtls_oid_get_oid_by_pk_alg
|
||||||
|
mbedtls_oid_get_oid_by_sig_alg
|
||||||
|
mbedtls_oid_get_pk_alg
|
||||||
|
mbedtls_oid_get_pkcs12_pbe_alg
|
||||||
|
mbedtls_oid_get_sig_alg
|
||||||
|
mbedtls_oid_get_sig_alg_desc
|
||||||
|
mbedtls_oid_get_x509_ext_type
|
||||||
|
mbedtls_padlock_has_support
|
||||||
|
mbedtls_padlock_xcryptcbc
|
||||||
|
mbedtls_padlock_xcryptecb
|
||||||
|
mbedtls_pem_free
|
||||||
|
mbedtls_pem_init
|
||||||
|
mbedtls_pem_read_buffer
|
||||||
|
mbedtls_pem_write_buffer
|
||||||
|
mbedtls_pk_can_do
|
||||||
|
mbedtls_pk_check_pair
|
||||||
|
mbedtls_pkcs12_derivation
|
||||||
|
mbedtls_pkcs12_pbe
|
||||||
|
mbedtls_pkcs12_pbe_sha1_rc4_128
|
||||||
|
mbedtls_pkcs5_pbes2
|
||||||
|
mbedtls_pkcs5_pbkdf2_hmac
|
||||||
|
mbedtls_pkcs5_self_test
|
||||||
|
mbedtls_pk_debug
|
||||||
|
mbedtls_pk_decrypt
|
||||||
|
mbedtls_pk_encrypt
|
||||||
|
mbedtls_pk_free
|
||||||
|
mbedtls_pk_get_bitlen
|
||||||
|
mbedtls_pk_get_name
|
||||||
|
mbedtls_pk_get_type
|
||||||
|
mbedtls_pk_info_from_type
|
||||||
|
mbedtls_pk_init
|
||||||
|
mbedtls_pk_parse_key
|
||||||
|
mbedtls_pk_parse_public_key
|
||||||
|
mbedtls_pk_parse_subpubkey
|
||||||
|
mbedtls_pk_setup
|
||||||
|
mbedtls_pk_setup_rsa_alt
|
||||||
|
mbedtls_pk_sign
|
||||||
|
mbedtls_pk_sign_restartable
|
||||||
|
mbedtls_pk_verify
|
||||||
|
mbedtls_pk_verify_ext
|
||||||
|
mbedtls_pk_verify_restartable
|
||||||
|
mbedtls_pk_write_key_der
|
||||||
|
mbedtls_pk_write_key_pem
|
||||||
|
mbedtls_pk_write_pubkey
|
||||||
|
mbedtls_pk_write_pubkey_der
|
||||||
|
mbedtls_pk_write_pubkey_pem
|
||||||
|
mbedtls_platform_gmtime_r
|
||||||
|
mbedtls_platform_setup
|
||||||
|
mbedtls_platform_teardown
|
||||||
|
mbedtls_platform_zeroize
|
||||||
|
mbedtls_poly1305_finish
|
||||||
|
mbedtls_poly1305_free
|
||||||
|
mbedtls_poly1305_init
|
||||||
|
mbedtls_poly1305_mac
|
||||||
|
mbedtls_poly1305_self_test
|
||||||
|
mbedtls_poly1305_starts
|
||||||
|
mbedtls_poly1305_update
|
||||||
|
mbedtls_ripemd160
|
||||||
|
mbedtls_ripemd160_clone
|
||||||
|
mbedtls_ripemd160_finish
|
||||||
|
mbedtls_ripemd160_finish_ret
|
||||||
|
mbedtls_ripemd160_free
|
||||||
|
mbedtls_ripemd160_init
|
||||||
|
mbedtls_ripemd160_process
|
||||||
|
mbedtls_ripemd160_ret
|
||||||
|
mbedtls_ripemd160_self_test
|
||||||
|
mbedtls_ripemd160_starts
|
||||||
|
mbedtls_ripemd160_starts_ret
|
||||||
|
mbedtls_ripemd160_update
|
||||||
|
mbedtls_ripemd160_update_ret
|
||||||
|
mbedtls_rsa_check_privkey
|
||||||
|
mbedtls_rsa_check_pubkey
|
||||||
|
mbedtls_rsa_check_pub_priv
|
||||||
|
mbedtls_rsa_complete
|
||||||
|
mbedtls_rsa_copy
|
||||||
|
mbedtls_rsa_deduce_crt
|
||||||
|
mbedtls_rsa_deduce_primes
|
||||||
|
mbedtls_rsa_deduce_private_exponent
|
||||||
|
mbedtls_rsa_export
|
||||||
|
mbedtls_rsa_export_crt
|
||||||
|
mbedtls_rsa_export_raw
|
||||||
|
mbedtls_rsa_free
|
||||||
|
mbedtls_rsa_gen_key
|
||||||
|
mbedtls_rsa_get_len
|
||||||
|
mbedtls_rsa_import
|
||||||
|
mbedtls_rsa_import_raw
|
||||||
|
mbedtls_rsa_init
|
||||||
|
mbedtls_rsa_pkcs1_decrypt
|
||||||
|
mbedtls_rsa_pkcs1_encrypt
|
||||||
|
mbedtls_rsa_pkcs1_sign
|
||||||
|
mbedtls_rsa_pkcs1_verify
|
||||||
|
mbedtls_rsa_private
|
||||||
|
mbedtls_rsa_public
|
||||||
|
mbedtls_rsa_rsaes_oaep_decrypt
|
||||||
|
mbedtls_rsa_rsaes_oaep_encrypt
|
||||||
|
mbedtls_rsa_rsaes_pkcs1_v15_decrypt
|
||||||
|
mbedtls_rsa_rsaes_pkcs1_v15_encrypt
|
||||||
|
mbedtls_rsa_rsassa_pkcs1_v15_sign
|
||||||
|
mbedtls_rsa_rsassa_pkcs1_v15_verify
|
||||||
|
mbedtls_rsa_rsassa_pss_sign
|
||||||
|
mbedtls_rsa_rsassa_pss_verify
|
||||||
|
mbedtls_rsa_rsassa_pss_verify_ext
|
||||||
|
mbedtls_rsa_self_test
|
||||||
|
mbedtls_rsa_set_padding
|
||||||
|
mbedtls_rsa_validate_crt
|
||||||
|
mbedtls_rsa_validate_params
|
||||||
|
mbedtls_sha1
|
||||||
|
mbedtls_sha1_clone
|
||||||
|
mbedtls_sha1_finish
|
||||||
|
mbedtls_sha1_finish_ret
|
||||||
|
mbedtls_sha1_free
|
||||||
|
mbedtls_sha1_init
|
||||||
|
mbedtls_sha1_process
|
||||||
|
mbedtls_sha1_ret
|
||||||
|
mbedtls_sha1_self_test
|
||||||
|
mbedtls_sha1_starts
|
||||||
|
mbedtls_sha1_starts_ret
|
||||||
|
mbedtls_sha1_update
|
||||||
|
mbedtls_sha1_update_ret
|
||||||
|
mbedtls_sha256
|
||||||
|
mbedtls_sha256_clone
|
||||||
|
mbedtls_sha256_finish
|
||||||
|
mbedtls_sha256_finish_ret
|
||||||
|
mbedtls_sha256_free
|
||||||
|
mbedtls_sha256_init
|
||||||
|
mbedtls_sha256_process
|
||||||
|
mbedtls_sha256_ret
|
||||||
|
mbedtls_sha256_self_test
|
||||||
|
mbedtls_sha256_starts
|
||||||
|
mbedtls_sha256_starts_ret
|
||||||
|
mbedtls_sha256_update
|
||||||
|
mbedtls_sha256_update_ret
|
||||||
|
mbedtls_sha512
|
||||||
|
mbedtls_sha512_clone
|
||||||
|
mbedtls_sha512_finish
|
||||||
|
mbedtls_sha512_finish_ret
|
||||||
|
mbedtls_sha512_free
|
||||||
|
mbedtls_sha512_init
|
||||||
|
mbedtls_sha512_process
|
||||||
|
mbedtls_sha512_ret
|
||||||
|
mbedtls_sha512_self_test
|
||||||
|
mbedtls_sha512_starts
|
||||||
|
mbedtls_sha512_starts_ret
|
||||||
|
mbedtls_sha512_update
|
||||||
|
mbedtls_sha512_update_ret
|
||||||
|
mbedtls_ssl_cache_free
|
||||||
|
mbedtls_ssl_cache_get
|
||||||
|
mbedtls_ssl_cache_init
|
||||||
|
mbedtls_ssl_cache_set
|
||||||
|
mbedtls_ssl_cache_set_max_entries
|
||||||
|
mbedtls_ssl_cache_set_timeout
|
||||||
|
mbedtls_ssl_check_cert_usage
|
||||||
|
mbedtls_ssl_check_curve
|
||||||
|
mbedtls_ssl_check_pending
|
||||||
|
mbedtls_ssl_check_sig_hash
|
||||||
|
mbedtls_ssl_ciphersuite_from_id
|
||||||
|
mbedtls_ssl_ciphersuite_from_string
|
||||||
|
mbedtls_ssl_ciphersuite_uses_ec
|
||||||
|
mbedtls_ssl_ciphersuite_uses_psk
|
||||||
|
mbedtls_ssl_close_notify
|
||||||
|
mbedtls_ssl_conf_alpn_protocols
|
||||||
|
mbedtls_ssl_conf_arc4_support
|
||||||
|
mbedtls_ssl_conf_authmode
|
||||||
|
mbedtls_ssl_conf_ca_chain
|
||||||
|
mbedtls_ssl_conf_cbc_record_splitting
|
||||||
|
mbedtls_ssl_conf_cert_profile
|
||||||
|
mbedtls_ssl_conf_cert_req_ca_list
|
||||||
|
mbedtls_ssl_conf_ciphersuites
|
||||||
|
mbedtls_ssl_conf_ciphersuites_for_version
|
||||||
|
mbedtls_ssl_conf_curves
|
||||||
|
mbedtls_ssl_conf_dbg
|
||||||
|
mbedtls_ssl_conf_dhm_min_bitlen
|
||||||
|
mbedtls_ssl_conf_dh_param
|
||||||
|
mbedtls_ssl_conf_dh_param_bin
|
||||||
|
mbedtls_ssl_conf_dh_param_ctx
|
||||||
|
mbedtls_ssl_conf_dtls_anti_replay
|
||||||
|
mbedtls_ssl_conf_dtls_badmac_limit
|
||||||
|
mbedtls_ssl_conf_dtls_cookies
|
||||||
|
mbedtls_ssl_conf_encrypt_then_mac
|
||||||
|
mbedtls_ssl_conf_endpoint
|
||||||
|
mbedtls_ssl_conf_export_keys_cb
|
||||||
|
mbedtls_ssl_conf_extended_master_secret
|
||||||
|
mbedtls_ssl_conf_fallback
|
||||||
|
mbedtls_ssl_conf_handshake_timeout
|
||||||
|
mbedtls_ssl_config_defaults
|
||||||
|
mbedtls_ssl_config_free
|
||||||
|
mbedtls_ssl_config_init
|
||||||
|
mbedtls_ssl_conf_legacy_renegotiation
|
||||||
|
mbedtls_ssl_conf_max_frag_len
|
||||||
|
mbedtls_ssl_conf_max_version
|
||||||
|
mbedtls_ssl_conf_min_version
|
||||||
|
mbedtls_ssl_conf_own_cert
|
||||||
|
mbedtls_ssl_conf_psk
|
||||||
|
mbedtls_ssl_conf_psk_cb
|
||||||
|
mbedtls_ssl_conf_read_timeout
|
||||||
|
mbedtls_ssl_conf_renegotiation
|
||||||
|
mbedtls_ssl_conf_renegotiation_enforced
|
||||||
|
mbedtls_ssl_conf_renegotiation_period
|
||||||
|
mbedtls_ssl_conf_rng
|
||||||
|
mbedtls_ssl_conf_session_cache
|
||||||
|
mbedtls_ssl_conf_session_tickets
|
||||||
|
mbedtls_ssl_conf_session_tickets_cb
|
||||||
|
mbedtls_ssl_conf_sig_hashes
|
||||||
|
mbedtls_ssl_conf_sni
|
||||||
|
mbedtls_ssl_conf_transport
|
||||||
|
mbedtls_ssl_conf_truncated_hmac
|
||||||
|
mbedtls_ssl_conf_verify
|
||||||
|
mbedtls_ssl_cookie_check
|
||||||
|
mbedtls_ssl_cookie_free
|
||||||
|
mbedtls_ssl_cookie_init
|
||||||
|
mbedtls_ssl_cookie_set_timeout
|
||||||
|
mbedtls_ssl_cookie_setup
|
||||||
|
mbedtls_ssl_cookie_write
|
||||||
|
mbedtls_ssl_derive_keys
|
||||||
|
mbedtls_ssl_dtls_replay_check
|
||||||
|
mbedtls_ssl_dtls_replay_update
|
||||||
|
mbedtls_ssl_fetch_input
|
||||||
|
mbedtls_ssl_flight_transmit
|
||||||
|
mbedtls_ssl_flush_output
|
||||||
|
mbedtls_ssl_free
|
||||||
|
mbedtls_ssl_get_alpn_protocol
|
||||||
|
mbedtls_ssl_get_bytes_avail
|
||||||
|
mbedtls_ssl_get_ciphersuite
|
||||||
|
mbedtls_ssl_get_ciphersuite_id
|
||||||
|
mbedtls_ssl_get_ciphersuite_name
|
||||||
|
mbedtls_ssl_get_ciphersuite_sig_alg
|
||||||
|
mbedtls_ssl_get_ciphersuite_sig_pk_alg
|
||||||
|
mbedtls_ssl_get_key_exchange_md_ssl_tls
|
||||||
|
mbedtls_ssl_get_key_exchange_md_tls1_2
|
||||||
|
mbedtls_ssl_get_max_frag_len
|
||||||
|
mbedtls_ssl_get_max_out_record_payload
|
||||||
|
mbedtls_ssl_get_peer_cert
|
||||||
|
mbedtls_ssl_get_record_expansion
|
||||||
|
mbedtls_ssl_get_session
|
||||||
|
mbedtls_ssl_get_verify_result
|
||||||
|
mbedtls_ssl_get_version
|
||||||
|
mbedtls_ssl_handle_message_type
|
||||||
|
mbedtls_ssl_handshake
|
||||||
|
mbedtls_ssl_handshake_client_step
|
||||||
|
mbedtls_ssl_handshake_free
|
||||||
|
mbedtls_ssl_handshake_server_step
|
||||||
|
mbedtls_ssl_handshake_step
|
||||||
|
mbedtls_ssl_handshake_wrapup
|
||||||
|
mbedtls_ssl_hash_from_md_alg
|
||||||
|
mbedtls_ssl_init
|
||||||
|
mbedtls_ssl_list_ciphersuites
|
||||||
|
mbedtls_ssl_md_alg_from_hash
|
||||||
|
mbedtls_ssl_optimize_checksum
|
||||||
|
mbedtls_ssl_parse_certificate
|
||||||
|
mbedtls_ssl_parse_change_cipher_spec
|
||||||
|
mbedtls_ssl_parse_finished
|
||||||
|
mbedtls_ssl_pk_alg_from_sig
|
||||||
|
mbedtls_ssl_prepare_handshake_record
|
||||||
|
mbedtls_ssl_psk_derive_premaster
|
||||||
|
mbedtls_ssl_read
|
||||||
|
mbedtls_ssl_read_record
|
||||||
|
mbedtls_ssl_read_version
|
||||||
|
mbedtls_ssl_recv_flight_completed
|
||||||
|
mbedtls_ssl_renegotiate
|
||||||
|
mbedtls_ssl_resend
|
||||||
|
mbedtls_ssl_reset_checksum
|
||||||
|
mbedtls_ssl_send_alert_message
|
||||||
|
mbedtls_ssl_send_fatal_handshake_failure
|
||||||
|
mbedtls_ssl_send_flight_completed
|
||||||
|
mbedtls_ssl_session_free
|
||||||
|
mbedtls_ssl_session_init
|
||||||
|
mbedtls_ssl_session_reset
|
||||||
|
mbedtls_ssl_set_bio
|
||||||
|
mbedtls_ssl_set_calc_verify_md
|
||||||
|
mbedtls_ssl_set_client_transport_id
|
||||||
|
mbedtls_ssl_set_datagram_packing
|
||||||
|
mbedtls_ssl_set_hostname
|
||||||
|
mbedtls_ssl_set_hs_authmode
|
||||||
|
mbedtls_ssl_set_hs_ca_chain
|
||||||
|
mbedtls_ssl_set_hs_own_cert
|
||||||
|
mbedtls_ssl_set_hs_psk
|
||||||
|
mbedtls_ssl_set_mtu
|
||||||
|
mbedtls_ssl_set_session
|
||||||
|
mbedtls_ssl_set_timer_cb
|
||||||
|
mbedtls_ssl_setup
|
||||||
|
mbedtls_ssl_sig_from_pk
|
||||||
|
mbedtls_ssl_sig_from_pk_alg
|
||||||
|
mbedtls_ssl_sig_hash_set_add
|
||||||
|
mbedtls_ssl_sig_hash_set_const_hash
|
||||||
|
mbedtls_ssl_sig_hash_set_find
|
||||||
|
mbedtls_ssl_ticket_free
|
||||||
|
mbedtls_ssl_ticket_init
|
||||||
|
mbedtls_ssl_ticket_parse
|
||||||
|
mbedtls_ssl_ticket_setup
|
||||||
|
mbedtls_ssl_ticket_write
|
||||||
|
mbedtls_ssl_transform_free
|
||||||
|
mbedtls_ssl_update_handshake_status
|
||||||
|
mbedtls_ssl_write
|
||||||
|
mbedtls_ssl_write_certificate
|
||||||
|
mbedtls_ssl_write_change_cipher_spec
|
||||||
|
mbedtls_ssl_write_finished
|
||||||
|
mbedtls_ssl_write_handshake_msg
|
||||||
|
mbedtls_ssl_write_record
|
||||||
|
mbedtls_ssl_write_version
|
||||||
|
mbedtls_strerror
|
||||||
|
mbedtls_sysfn_14_poll
|
||||||
|
mbedtls_sysfn_18_4_poll
|
||||||
|
mbedtls_sysfn_26_9_poll
|
||||||
|
mbedtls_sysfn_37_0_poll
|
||||||
|
mbedtls_sysfn_3_poll
|
||||||
|
mbedtls_sysfn_66_3_poll
|
||||||
|
mbedtls_sysfn_68_0_poll
|
||||||
|
mbedtls_version_check_feature
|
||||||
|
mbedtls_version_get_number
|
||||||
|
mbedtls_version_get_string
|
||||||
|
mbedtls_version_get_string_full
|
||||||
|
mbedtls_x509_crl_free
|
||||||
|
mbedtls_x509_crl_info
|
||||||
|
mbedtls_x509_crl_init
|
||||||
|
mbedtls_x509_crl_parse
|
||||||
|
mbedtls_x509_crl_parse_der
|
||||||
|
mbedtls_x509_crt_check_extended_key_usage
|
||||||
|
mbedtls_x509_crt_check_key_usage
|
||||||
|
mbedtls_x509_crt_free
|
||||||
|
mbedtls_x509_crt_info
|
||||||
|
mbedtls_x509_crt_init
|
||||||
|
mbedtls_x509_crt_is_revoked
|
||||||
|
mbedtls_x509_crt_parse
|
||||||
|
mbedtls_x509_crt_parse_der
|
||||||
|
mbedtls_x509_crt_verify
|
||||||
|
mbedtls_x509_crt_verify_info
|
||||||
|
mbedtls_x509_crt_verify_restartable
|
||||||
|
mbedtls_x509_crt_verify_with_profile
|
||||||
|
mbedtls_x509_csr_free
|
||||||
|
mbedtls_x509_csr_info
|
||||||
|
mbedtls_x509_csr_init
|
||||||
|
mbedtls_x509_csr_parse
|
||||||
|
mbedtls_x509_csr_parse_der
|
||||||
|
mbedtls_x509_dn_gets
|
||||||
|
mbedtls_x509_get_alg
|
||||||
|
mbedtls_x509_get_alg_null
|
||||||
|
mbedtls_x509_get_ext
|
||||||
|
mbedtls_x509_get_name
|
||||||
|
mbedtls_x509_get_rsassa_pss_params
|
||||||
|
mbedtls_x509_get_serial
|
||||||
|
mbedtls_x509_get_sig
|
||||||
|
mbedtls_x509_get_sig_alg
|
||||||
|
mbedtls_x509_get_time
|
||||||
|
mbedtls_x509_key_size_helper
|
||||||
|
mbedtls_x509_self_test
|
||||||
|
mbedtls_x509_serial_gets
|
||||||
|
mbedtls_x509_set_extension
|
||||||
|
mbedtls_x509_sig_alg_gets
|
||||||
|
mbedtls_x509_string_to_names
|
||||||
|
mbedtls_x509_time_is_future
|
||||||
|
mbedtls_x509_time_is_past
|
||||||
|
mbedtls_x509write_crt_der
|
||||||
|
mbedtls_x509write_crt_free
|
||||||
|
mbedtls_x509write_crt_init
|
||||||
|
mbedtls_x509write_crt_pem
|
||||||
|
mbedtls_x509write_crt_set_authority_key_identifier
|
||||||
|
mbedtls_x509write_crt_set_basic_constraints
|
||||||
|
mbedtls_x509write_crt_set_extension
|
||||||
|
mbedtls_x509write_crt_set_issuer_key
|
||||||
|
mbedtls_x509write_crt_set_issuer_name
|
||||||
|
mbedtls_x509write_crt_set_key_usage
|
||||||
|
mbedtls_x509write_crt_set_md_alg
|
||||||
|
mbedtls_x509write_crt_set_ns_cert_type
|
||||||
|
mbedtls_x509write_crt_set_serial
|
||||||
|
mbedtls_x509write_crt_set_subject_key
|
||||||
|
mbedtls_x509write_crt_set_subject_key_identifier
|
||||||
|
mbedtls_x509write_crt_set_subject_name
|
||||||
|
mbedtls_x509write_crt_set_validity
|
||||||
|
mbedtls_x509write_crt_set_version
|
||||||
|
mbedtls_x509write_csr_der
|
||||||
|
mbedtls_x509write_csr_free
|
||||||
|
mbedtls_x509write_csr_init
|
||||||
|
mbedtls_x509write_csr_pem
|
||||||
|
mbedtls_x509write_csr_set_extension
|
||||||
|
mbedtls_x509write_csr_set_key
|
||||||
|
mbedtls_x509write_csr_set_key_usage
|
||||||
|
mbedtls_x509write_csr_set_md_alg
|
||||||
|
mbedtls_x509write_csr_set_ns_cert_type
|
||||||
|
mbedtls_x509write_csr_set_subject_name
|
||||||
|
mbedtls_x509_write_extensions
|
||||||
|
mbedtls_x509_write_names
|
||||||
|
mbedtls_x509_write_sig
|
||||||
|
mbedtls_xtea_crypt_cbc
|
||||||
|
mbedtls_xtea_crypt_ecb
|
||||||
|
mbedtls_xtea_free
|
||||||
|
mbedtls_xtea_init
|
||||||
|
mbedtls_xtea_self_test
|
||||||
|
mbedtls_xtea_setup
|
||||||
|
mbedtls_test_cas_pem
|
||||||
|
mbedtls_test_cas_pem_len
|
7
programs/develop/ktcc/trunk/kx/lib/network.def
Normal file
7
programs/develop/ktcc/trunk/kx/lib/network.def
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
LIBRARY network.obj
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
inet_addr
|
||||||
|
inet_ntoa
|
||||||
|
getaddrinfo
|
||||||
|
freeaddrinfo
|
18
programs/develop/ktcc/trunk/kx/src/tests/kxtest.c
Normal file
18
programs/develop/ktcc/trunk/kx/src/tests/kxtest.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
//
|
||||||
|
// This sample show that KX extension supported or not
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
|
||||||
|
char* kx_ext =
|
||||||
|
#ifndef __KX__
|
||||||
|
"not "
|
||||||
|
#endif
|
||||||
|
"supported"
|
||||||
|
;
|
||||||
|
|
||||||
|
printf("KX extension %s", kx_ext);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
3
programs/develop/ktcc/trunk/kx/src/tests/kxtest.sh
Normal file
3
programs/develop/ktcc/trunk/kx/src/tests/kxtest.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#SHS
|
||||||
|
../../../tcc ../src/tests/kxtest.c -o kxtest -I../../include -llibc
|
||||||
|
exit
|
@ -113,12 +113,17 @@ static void tcc_set_lib_path_w32(TCCState *s)
|
|||||||
{
|
{
|
||||||
char path[1024], *p;
|
char path[1024], *p;
|
||||||
GetModuleFileNameA(tcc_module, path, sizeof path);
|
GetModuleFileNameA(tcc_module, path, sizeof path);
|
||||||
|
#ifdef TCC_TARGET_KX
|
||||||
|
kx_fix_root_directory(path, sizeof path);
|
||||||
|
normalize_slashes(strlwr(path));
|
||||||
|
#else
|
||||||
p = tcc_basename(normalize_slashes(strlwr(path)));
|
p = tcc_basename(normalize_slashes(strlwr(path)));
|
||||||
if (p - 5 > path && 0 == strncmp(p - 5, "/bin/", 5))
|
if (p - 5 > path && 0 == strncmp(p - 5, "/bin/", 5))
|
||||||
p -= 5;
|
p -= 5;
|
||||||
else if (p > path)
|
else if (p > path)
|
||||||
p--;
|
p--;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
|
#endif
|
||||||
tcc_set_lib_path(s, path);
|
tcc_set_lib_path(s, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,9 +159,13 @@ static void tcc_set_lib_path_kos(TCCState *s)
|
|||||||
char** argv0 = (char**)0x20; // path in kolibri header
|
char** argv0 = (char**)0x20; // path in kolibri header
|
||||||
char path[1024], *p;
|
char path[1024], *p;
|
||||||
strncpy(path, *argv0, sizeof path);
|
strncpy(path, *argv0, sizeof path);
|
||||||
|
#ifdef TCC_TARGET_KX
|
||||||
|
kx_fix_root_directory(path, sizeof path);
|
||||||
|
#else
|
||||||
p = tcc_basename(path);
|
p = tcc_basename(path);
|
||||||
if (p > path) p--;
|
if (p > path) p--;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
|
#endif
|
||||||
tcc_set_lib_path(s, path);
|
tcc_set_lib_path(s, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,7 +174,12 @@ static void tcc_set_lib_path_linux(TCCState *s)
|
|||||||
{
|
{
|
||||||
char buff[4096+1];
|
char buff[4096+1];
|
||||||
readlink("/proc/self/exe", buff, 4096);
|
readlink("/proc/self/exe", buff, 4096);
|
||||||
|
#ifdef TCC_TARGET_KX
|
||||||
|
kx_fix_root_directory(buff, sizeof buff);
|
||||||
|
const char *path = buff;
|
||||||
|
#else
|
||||||
const char *path = dirname(buff);
|
const char *path = dirname(buff);
|
||||||
|
#endif
|
||||||
tcc_set_lib_path(s, path);
|
tcc_set_lib_path(s, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
#ifndef TCC_TARGET_MEOS
|
#ifndef TCC_TARGET_MEOS
|
||||||
#define TCC_TARGET_MEOS
|
#define TCC_TARGET_MEOS
|
||||||
#endif
|
#endif
|
||||||
|
void kx_fix_root_directory(char *buf, size_t size);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
|
@ -34,7 +34,7 @@ typedef struct {
|
|||||||
/*union ImportEntry {
|
/*union ImportEntry {
|
||||||
uint32_t ImportStr;
|
uint32_t ImportStr;
|
||||||
uint32_t ImportPrt;
|
uint32_t ImportPrt;
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
//static char __kx_import_table_sym[] = "__i_ptr__";
|
//static char __kx_import_table_sym[] = "__i_ptr__";
|
||||||
|
|
||||||
@ -43,19 +43,21 @@ typedef struct {
|
|||||||
ElfW(Sym) *sym;
|
ElfW(Sym) *sym;
|
||||||
int sym_index, sym_end;
|
int sym_index, sym_end;
|
||||||
sym_end = symtab_section->data_offset / sizeof(ElfW(Sym));
|
sym_end = symtab_section->data_offset / sizeof(ElfW(Sym));
|
||||||
|
DLLReference **dllref = me->s1->loaded_dlls;
|
||||||
CString *str_arr, *len_arr, *sym_arr;
|
CString *str_arr, *len_arr, *sym_arr;
|
||||||
char dll_len;
|
char dll_len;
|
||||||
|
int dll_loaded = me->s1->nb_loaded_dlls;
|
||||||
int nlib = 0;
|
int nlib = 0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (me->header.version != 2)
|
if (me->header.version != 2)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
str_arr = tcc_malloc(sizeof(CString) * me->s1->nb_loaded_dlls);
|
str_arr = tcc_malloc(sizeof(CString) * dll_loaded);
|
||||||
|
|
||||||
len_arr = tcc_malloc(sizeof(CString)* me->s1->nb_loaded_dlls);
|
len_arr = tcc_malloc(sizeof(CString)* dll_loaded);
|
||||||
|
|
||||||
sym_arr = tcc_malloc(sizeof(CString)* me->s1->nb_loaded_dlls);
|
sym_arr = tcc_malloc(sizeof(CString)* dll_loaded);
|
||||||
|
|
||||||
for (sym_index = 1; sym_index < sym_end; ++sym_index) {
|
for (sym_index = 1; sym_index < sym_end; ++sym_index) {
|
||||||
sym = (ElfW(Sym) *)symtab_section->data + sym_index;
|
sym = (ElfW(Sym) *)symtab_section->data + sym_index;
|
||||||
@ -66,18 +68,13 @@ typedef struct {
|
|||||||
if (dynsym_index == 0) {
|
if (dynsym_index == 0) {
|
||||||
//if (strcmp(name, __kx_import_table_sym) != 0) {
|
//if (strcmp(name, __kx_import_table_sym) != 0) {
|
||||||
tcc_error/*_noabort*/("undefined symbol '%s'", name);
|
tcc_error/*_noabort*/("undefined symbol '%s'", name);
|
||||||
//continue; // FIXME: stop compile!
|
|
||||||
//}
|
|
||||||
|
|
||||||
//continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// KOS support 32 bit only
|
// KOS support 32 bit only
|
||||||
Elf32_Sym* dyn_sym = &((ElfW(Sym) *)me->s1->dynsymtab_section->data)[dynsym_index];
|
Elf32_Sym* dyn_sym = &((ElfW(Sym) *)me->s1->dynsymtab_section->data)[dynsym_index];
|
||||||
DLLReference **dllref = me->s1->loaded_dlls;
|
char* dll_name;
|
||||||
char* dll_name;
|
|
||||||
i = dyn_sym->st_size - 1;
|
|
||||||
// TCC store dll index in dyn_sym->st_size field
|
// TCC store dll index in dyn_sym->st_size field
|
||||||
|
i = dyn_sym->st_size - 1;
|
||||||
if (dllref[i]->level != -1) {
|
if (dllref[i]->level != -1) {
|
||||||
dll_name = dllref[i]->name;
|
dll_name = dllref[i]->name;
|
||||||
dll_len = strlen(dll_name) + 1;
|
dll_len = strlen(dll_name) + 1;
|
||||||
@ -86,7 +83,7 @@ typedef struct {
|
|||||||
|
|
||||||
cstr_new(&str_arr[i]);
|
cstr_new(&str_arr[i]);
|
||||||
cstr_new(&len_arr[i]);
|
cstr_new(&len_arr[i]);
|
||||||
cstr_new(&sym_arr[i]);
|
cstr_new(&sym_arr[i]);
|
||||||
|
|
||||||
cstr_ccat(&len_arr[i], dll_len);
|
cstr_ccat(&len_arr[i], dll_len);
|
||||||
cstr_cat(&str_arr[i], dll_name, dll_len);
|
cstr_cat(&str_arr[i], dll_name, dll_len);
|
||||||
@ -94,7 +91,7 @@ typedef struct {
|
|||||||
dllref[i]->level = -1;
|
dllref[i]->level = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
cstr_wccat(&sym_arr[i], (int)name);
|
cstr_wccat(&sym_arr[i], (int)name);
|
||||||
|
|
||||||
// Export defined with prefix?
|
// Export defined with prefix?
|
||||||
if (dyn_sym->st_value == -1){
|
if (dyn_sym->st_value == -1){
|
||||||
@ -115,6 +112,46 @@ typedef struct {
|
|||||||
return;
|
return;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
// Fixed BUG#15 (possible access to uninitialized due unused library)
|
||||||
|
// Exclude unused librarys
|
||||||
|
if (nlib < dll_loaded) {
|
||||||
|
i = 0; int j, n = 0;
|
||||||
|
do {
|
||||||
|
|
||||||
|
// Find unused library
|
||||||
|
if (dllref[i]->level == 0) {
|
||||||
|
j = i + 1;
|
||||||
|
|
||||||
|
while (j < dll_loaded) {
|
||||||
|
// Find first used library
|
||||||
|
if (dllref[j]->level == -1) {
|
||||||
|
// Found, copy i from j
|
||||||
|
str_arr[i] = str_arr[j];
|
||||||
|
len_arr[i] = len_arr[j];
|
||||||
|
sym_arr[i] = sym_arr[j];
|
||||||
|
// Mark j as unused
|
||||||
|
dllref[j]->level = 0;
|
||||||
|
|
||||||
|
if (++n == nlib)
|
||||||
|
goto __done;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
j++;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
|
||||||
|
} while (i < dll_loaded);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
__done:
|
||||||
|
|
||||||
// Zero terminate of ptr (was BUG#3)
|
// Zero terminate of ptr (was BUG#3)
|
||||||
i = 0;
|
i = 0;
|
||||||
do {
|
do {
|
||||||
@ -128,7 +165,7 @@ typedef struct {
|
|||||||
kx_import_table* imp_sect;
|
kx_import_table* imp_sect;
|
||||||
|
|
||||||
imp_sect = tcc_mallocz(sizeof(kx_import_table));
|
imp_sect = tcc_mallocz(sizeof(kx_import_table));
|
||||||
imp_sect->data = tcc_mallocz(1024); // FIXME!!!
|
imp_sect->data = tcc_mallocz(4096); // FIXME!!! I increased it to 4Kb, but steel need dynamicaly size
|
||||||
imp_sect->data_size = 0;
|
imp_sect->data_size = 0;
|
||||||
//imp_sect->sh_addr = me->header.image_size;// +1;
|
//imp_sect->sh_addr = me->header.image_size;// +1;
|
||||||
|
|
||||||
@ -147,6 +184,7 @@ typedef struct {
|
|||||||
|
|
||||||
// Align pad (check algorithm!)
|
// Align pad (check algorithm!)
|
||||||
int align = 4 - (me->header.image_size + imp_sect->data_size) % 4;
|
int align = 4 - (me->header.image_size + imp_sect->data_size) % 4;
|
||||||
|
align = align < 4 ? align : 0;
|
||||||
imp_data += align;
|
imp_data += align;
|
||||||
imp_sect->data_size += align;
|
imp_sect->data_size += align;
|
||||||
|
|
||||||
@ -187,7 +225,7 @@ typedef struct {
|
|||||||
imp_sect->data_size += sizeof(LibraryEntry) + 4;
|
imp_sect->data_size += sizeof(LibraryEntry) + 4;
|
||||||
|
|
||||||
const char *sym_name;
|
const char *sym_name;
|
||||||
char name_len;
|
char name_len;
|
||||||
long len_sum;
|
long len_sum;
|
||||||
|
|
||||||
len_sum = me->header.image_size;
|
len_sum = me->header.image_size;
|
||||||
@ -230,7 +268,7 @@ typedef struct {
|
|||||||
|
|
||||||
tcc_free(str_arr);
|
tcc_free(str_arr);
|
||||||
tcc_free(len_arr);
|
tcc_free(len_arr);
|
||||||
tcc_free(sym_arr);
|
tcc_free(sym_arr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,11 +284,9 @@ typedef struct {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((sym_index < sym_end) &&
|
if ((sym_index < sym_end) &&
|
||||||
// ... and user attached at last one *.def
|
// ... and user attached at least one *.def
|
||||||
(me->s1->nb_loaded_dlls))
|
(me->s1->nb_loaded_dlls))
|
||||||
me->header.version = 2;
|
me->header.version = 2;
|
||||||
|
|
||||||
//tcc_add_crt(me->s1, "start1.o");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long kx_get_header_length(me_info* me) {
|
long kx_get_header_length(me_info* me) {
|
||||||
@ -278,3 +314,57 @@ typedef struct {
|
|||||||
tcc_free(imp);
|
tcc_free(imp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if /*!*/defined(_DEBUG)// && !defined(_WIN32)
|
||||||
|
#define kx_debug_output printf
|
||||||
|
#else
|
||||||
|
#define kx_debug_output(s,p) ((void)0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
Calling once from tcc_set_lib_path_xxx
|
||||||
|
This function correct tcc_root if tcc_root/kx is a run directory,
|
||||||
|
otherwise do trim filename
|
||||||
|
*/
|
||||||
|
void kx_fix_root_directory(char *buf, size_t size) {
|
||||||
|
|
||||||
|
int defult = 1;
|
||||||
|
char* tcc_conf = tcc_malloc(strlen(buf)+5);
|
||||||
|
strcpy(tcc_conf, buf);
|
||||||
|
char* base = tcc_basename(tcc_conf);
|
||||||
|
*base = 0;
|
||||||
|
base = tcc_basename(buf);
|
||||||
|
strcat(tcc_conf, "tcc.conf");
|
||||||
|
FILE* f = fopen(tcc_conf,"r");
|
||||||
|
if (f) {
|
||||||
|
char line[100];
|
||||||
|
while (fgets(line, sizeof line, f)){
|
||||||
|
switch (*line)
|
||||||
|
case '#':
|
||||||
|
case '\n':
|
||||||
|
continue;
|
||||||
|
if ((strspn(line, "tcc_root") == 8) && line[8] == ' ') {
|
||||||
|
|
||||||
|
if (strcmp(line + 9, "kx") == 0) {
|
||||||
|
strcpy(base, line + 9);
|
||||||
|
defult = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Disallow change tcc_root with arbitrary path
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
|
if (defult) {
|
||||||
|
|
||||||
|
*--base = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
tcc_free(tcc_conf);
|
||||||
|
//kx_debug_output("tcc root = %s\n", buf);
|
||||||
|
}
|
5
programs/develop/ktcc/trunk/tcc.conf
Normal file
5
programs/develop/ktcc/trunk/tcc.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# This configuration file for TCC behaviour
|
||||||
|
# (actually was added for on/off KX extension)
|
||||||
|
|
||||||
|
# Change %ktcc_root%\ to %ktcc_root%\kx
|
||||||
|
tcc_root kx
|
Loading…
Reference in New Issue
Block a user