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:
Coldy
2021-12-28 20:05:47 +00:00
parent 834587bb50
commit 57ea3e92bd
6 changed files with 13 additions and 216 deletions
+6 -6
View File
@@ -113,7 +113,7 @@ static void tcc_set_lib_path_w32(TCCState *s)
{
char path[1024], *p;
GetModuleFileNameA(tcc_module, path, sizeof path);
#ifdef TCC_TARGET_KX
#ifdef TCC_TARGET_KX
kx_fix_root_directory(path, sizeof path);
normalize_slashes(strlwr(path));
#else
@@ -155,13 +155,13 @@ BOOL WINAPI DllMain (HINSTANCE hDll, DWORD dwReason, LPVOID lpReserved)
#if defined TCC_TARGET_MEOS
/* 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)
{
{
char** argv0 = (char**)0x20; // path in kolibri header
char path[1024], *p;
char path[1024], *p;
strncpy(path, *argv0, sizeof path);
#ifdef TCC_TARGET_KX
#ifdef TCC_TARGET_KX
kx_fix_root_directory(path, sizeof path);
#else
#else
p = tcc_basename(path);
if (p > path) p--;
*p = 0;
@@ -174,7 +174,7 @@ static void tcc_set_lib_path_linux(TCCState *s)
{
char buff[4096+1];
readlink("/proc/self/exe", buff, 4096);
#ifdef TCC_TARGET_KX
#ifdef TCC_TARGET_KX
kx_fix_root_directory(buff, sizeof buff);
const char *path = buff;
#else
+4 -4
View File
@@ -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_size = 0;
//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
i = 0;
@@ -203,7 +203,7 @@ typedef struct {
memcpy((void*)imp_data, &lib, sizeof(LibraryEntry));
if (nlib > 1) {
int prev_sum = 0;
int prev_sum = 0;
int prev = 0;
i = 1;
do {
@@ -232,7 +232,7 @@ typedef struct {
i = 0;
do {
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