forked from KolibriOS/kolibrios
Add KX extension to tcc (autoload w/import table support), phase 2.3
Done, fully added to distributive git-svn-id: svn://kolibrios.org@9517 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
834587bb50
commit
57ea3e92bd
@ -183,6 +183,9 @@ extra_files = {
|
|||||||
{"kolibrios/develop/oberon07/samples/", PROGS .. "/develop/oberon07/samples/*"},
|
{"kolibrios/develop/oberon07/samples/", PROGS .. "/develop/oberon07/samples/*"},
|
||||||
{"kolibrios/develop/tcc/", PROGS .. "/develop/ktcc/trunk/*"},
|
{"kolibrios/develop/tcc/", PROGS .. "/develop/ktcc/trunk/*"},
|
||||||
-- {"kolibrios/develop/tcc/", PROGS .. "/develop/ktcc/trunk/bin/tcc"},
|
-- {"kolibrios/develop/tcc/", PROGS .. "/develop/ktcc/trunk/bin/tcc"},
|
||||||
|
{"kolibrios/develop/tcc/kx/doc/", PROGS .. "/develop/ktcc/trunk/kx/doc/*"},
|
||||||
|
{"kolibrios/develop/tcc/kx/lib/", PROGS .. "/develop/ktcc/trunk/kx/lib/*"},
|
||||||
|
{"kolibrios/develop/tcc/kx/src/tests", PROGS .. "/develop/ktcc/trunk/kx/src/tests/*"},
|
||||||
{"kolibrios/develop/tcc/lib/", PROGS .. "/develop/ktcc/trunk/bin/lib/*"},
|
{"kolibrios/develop/tcc/lib/", PROGS .. "/develop/ktcc/trunk/bin/lib/*"},
|
||||||
{"kolibrios/develop/tcc/include/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/*"},
|
{"kolibrios/develop/tcc/include/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/*"},
|
||||||
{"kolibrios/develop/tcc/include/clayer/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/clayer/*"},
|
{"kolibrios/develop/tcc/include/clayer/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/clayer/*"},
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
LIBRARY http.obj
|
|
||||||
|
|
||||||
EXPORTS prefix
|
|
||||||
http_get
|
|
||||||
http_head
|
|
||||||
http_post
|
|
||||||
http_receive
|
|
||||||
http_send
|
|
||||||
http_free
|
|
@ -1,20 +0,0 @@
|
|||||||
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
|
|
@ -1,177 +0,0 @@
|
|||||||
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
|
|
@ -113,7 +113,7 @@ 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
|
#ifdef TCC_TARGET_KX
|
||||||
kx_fix_root_directory(path, sizeof path);
|
kx_fix_root_directory(path, sizeof path);
|
||||||
normalize_slashes(strlwr(path));
|
normalize_slashes(strlwr(path));
|
||||||
#else
|
#else
|
||||||
@ -155,13 +155,13 @@ BOOL WINAPI DllMain (HINSTANCE hDll, DWORD dwReason, LPVOID lpReserved)
|
|||||||
#if defined TCC_TARGET_MEOS
|
#if defined TCC_TARGET_MEOS
|
||||||
/* on Kolibri host, we suppose the lib and includes are at the location of 'tcc' /lib, /include */
|
/* on Kolibri host, we suppose the lib and includes are at the location of 'tcc' /lib, /include */
|
||||||
static void tcc_set_lib_path_kos(TCCState *s)
|
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
|
#ifdef TCC_TARGET_KX
|
||||||
kx_fix_root_directory(path, sizeof path);
|
kx_fix_root_directory(path, sizeof path);
|
||||||
#else
|
#else
|
||||||
p = tcc_basename(path);
|
p = tcc_basename(path);
|
||||||
if (p > path) p--;
|
if (p > path) p--;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
@ -174,7 +174,7 @@ 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
|
#ifdef TCC_TARGET_KX
|
||||||
kx_fix_root_directory(buff, sizeof buff);
|
kx_fix_root_directory(buff, sizeof buff);
|
||||||
const char *path = buff;
|
const char *path = buff;
|
||||||
#else
|
#else
|
||||||
|
@ -168,8 +168,8 @@ typedef struct {
|
|||||||
imp_sect->data = tcc_mallocz(4096); // FIXME!!! I increased it to 4Kb, but steel need dynamicaly size
|
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;
|
||||||
|
|
||||||
long imp_data = (long)imp_sect->data; //FIXED changed to long for gcc compatible
|
long imp_data = (long)imp_sect->data; //FIXED changed to long for gcc compatible
|
||||||
|
|
||||||
// Strings
|
// Strings
|
||||||
i = 0;
|
i = 0;
|
||||||
@ -203,7 +203,7 @@ typedef struct {
|
|||||||
memcpy((void*)imp_data, &lib, sizeof(LibraryEntry));
|
memcpy((void*)imp_data, &lib, sizeof(LibraryEntry));
|
||||||
|
|
||||||
if (nlib > 1) {
|
if (nlib > 1) {
|
||||||
int prev_sum = 0;
|
int prev_sum = 0;
|
||||||
int prev = 0;
|
int prev = 0;
|
||||||
i = 1;
|
i = 1;
|
||||||
do {
|
do {
|
||||||
@ -232,7 +232,7 @@ typedef struct {
|
|||||||
i = 0;
|
i = 0;
|
||||||
do {
|
do {
|
||||||
char* len_data = len_arr[i].data;
|
char* len_data = len_arr[i].data;
|
||||||
long* sym_data = sym_arr[i].data;
|
long* sym_data = sym_arr[i].data;
|
||||||
|
|
||||||
name_len = *len_data++; // Skip library name
|
name_len = *len_data++; // Skip library name
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user