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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user