From 5c8619e65c57927e5281329ce5004ca3e4417851 Mon Sep 17 00:00:00 2001 From: turbocat Date: Sat, 1 Jan 2022 20:05:13 +0000 Subject: [PATCH] ktcc: - fixed bug with crt0.o search when using -B parameter. - removed support for tcc.conf. git-svn-id: svn://kolibrios.org@9557 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../ktcc/trunk/source/Makefile.linux32 | 2 +- programs/develop/ktcc/trunk/source/libtcc.c | 23 ++++--------------- programs/develop/ktcc/trunk/source/tcc.h | 2 +- programs/develop/ktcc/trunk/source/tcckx.c | 6 +++-- programs/develop/ktcc/trunk/source/tccmeos.c | 1 + 5 files changed, 11 insertions(+), 23 deletions(-) diff --git a/programs/develop/ktcc/trunk/source/Makefile.linux32 b/programs/develop/ktcc/trunk/source/Makefile.linux32 index f397c08cda..6f60b80b72 100644 --- a/programs/develop/ktcc/trunk/source/Makefile.linux32 +++ b/programs/develop/ktcc/trunk/source/Makefile.linux32 @@ -2,7 +2,7 @@ CC=gcc NAME=kos32-tcc SRC=libtcc.c tcc.c -CFLAGS= -DTCC_TARGET_MEOS_LINUX +CFLAGS= -DTCC_TARGET_MEOS_LINUX LFLAGS= -m32 all: diff --git a/programs/develop/ktcc/trunk/source/libtcc.c b/programs/develop/ktcc/trunk/source/libtcc.c index e810be03e4..e903ba0469 100644 --- a/programs/develop/ktcc/trunk/source/libtcc.c +++ b/programs/develop/ktcc/trunk/source/libtcc.c @@ -113,17 +113,12 @@ static void tcc_set_lib_path_w32(TCCState *s) { char path[1024], *p; 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))); if (p - 5 > path && 0 == strncmp(p - 5, "/bin/", 5)) p -= 5; else if (p > path) p--; *p = 0; -#endif tcc_set_lib_path(s, path); } @@ -155,17 +150,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 - kx_fix_root_directory(path, sizeof path); -#else p = tcc_basename(path); if (p > path) p--; *p = 0; -#endif tcc_set_lib_path(s, path); } @@ -174,12 +165,7 @@ static void tcc_set_lib_path_linux(TCCState *s) { char buff[4096+1]; 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); -#endif tcc_set_lib_path(s, path); } @@ -1540,7 +1526,7 @@ ST_FUNC int tcc_add_crt(TCCState *s, const char *filename) { if (-1 == tcc_add_library_internal(s, "%s/%s", filename, 0, s->crt_paths, s->nb_crt_paths)) - tcc_error_noabort("file '%s' not found", filename); + tcc_error("file '%s' not found", filename); return 0; } @@ -1745,9 +1731,7 @@ LIBTCCAPI int tcc_set_output_type(TCCState *s, int output_type) #elif defined(TCC_TARGET_MEOS) if (s->output_type != TCC_OUTPUT_OBJ && !s->nostdlib) { - tcc_add_crt(s,"crt0.o"); tcc_add_library_err(s, "c"); - tcc_add_library_err(s, "tcc1"); } #else /* add libc crt1/crti objects */ @@ -2280,6 +2264,7 @@ ST_FUNC int tcc_parse_args1(TCCState *s, int argc, char **argv) case TCC_OPTION_B: /* set tcc utilities path (mainly for tcc development) */ tcc_set_lib_path(s, optarg); + tcc_split_path(s, (void ***)&s->crt_paths, &s->nb_crt_paths, CONFIG_TCC_CRTPREFIX); break; case TCC_OPTION_l: args_parser_add_file(s, r, TCC_FILETYPE_BINARY); diff --git a/programs/develop/ktcc/trunk/source/tcc.h b/programs/develop/ktcc/trunk/source/tcc.h index 16ef960787..a56da580ed 100644 --- a/programs/develop/ktcc/trunk/source/tcc.h +++ b/programs/develop/ktcc/trunk/source/tcc.h @@ -47,7 +47,7 @@ #ifndef TCC_TARGET_MEOS #define TCC_TARGET_MEOS #endif -void kx_fix_root_directory(char *buf, size_t size); +//void kx_fix_root_directory(char *buf, size_t size); #endif #ifndef _WIN32 diff --git a/programs/develop/ktcc/trunk/source/tcckx.c b/programs/develop/ktcc/trunk/source/tcckx.c index 59f21a49b9..d0cd9017f5 100644 --- a/programs/develop/ktcc/trunk/source/tcckx.c +++ b/programs/develop/ktcc/trunk/source/tcckx.c @@ -323,6 +323,7 @@ typedef struct { This function correct tcc_root if tcc_root/kx is a run directory, otherwise do trim filename */ +#if 0 void kx_fix_root_directory(char *buf, size_t size) { int defult = 1; @@ -363,5 +364,6 @@ typedef struct { } tcc_free(tcc_conf); - //kx_debug_output("tcc root = %s\n", buf); - } \ No newline at end of file + kx_debug_output("tcc root = %s\n", buf); + } +#endif diff --git a/programs/develop/ktcc/trunk/source/tccmeos.c b/programs/develop/ktcc/trunk/source/tccmeos.c index 92858253e6..039a92ad01 100644 --- a/programs/develop/ktcc/trunk/source/tccmeos.c +++ b/programs/develop/ktcc/trunk/source/tccmeos.c @@ -303,6 +303,7 @@ int tcc_output_me(TCCState* s1,const char *filename) kx_init(&me); #endif if (s1->output_type != TCC_OUTPUT_OBJ && !s1->nostdlib){ + tcc_add_crt(s1, "crt0.o"); tcc_add_library_err(s1, "tcc1"); }