Accept colon separated paths with -L and -I
This allows passing colon separated paths to tcc_add_library_path tcc_add_sysinclude_path tcc_add_include_path Also there are new configure variables CONFIG_TCC_LIBPATH CONFIG_TCC_SYSINCLUDE_PATHS which define the lib/sysinclude paths all in one and can be overridden from configure/make For TCC_TARGET_PE semicolons (;) are used as separators Also, \b in the path string is replaced by s->tcc_lib_path (CONFIG_TCCDIR rsp. -B option)
This commit is contained in:
13
tccelf.c
13
tccelf.c
@ -2857,13 +2857,6 @@ static int ld_next(TCCState *s1, char *name, int name_size)
|
||||
return c;
|
||||
}
|
||||
|
||||
char *tcc_strcpy_part(char *out, const char *in, size_t num)
|
||||
{
|
||||
memcpy(out, in, num);
|
||||
out[num] = '\0';
|
||||
return out;
|
||||
}
|
||||
|
||||
/*
|
||||
* Extract the library name from the file name
|
||||
* Return 0 if the file isn't a library
|
||||
@ -2886,20 +2879,20 @@ static int filename_to_libname(TCCState *s1, const char filename[], char libname
|
||||
#ifdef TCC_TARGET_PE
|
||||
if (!strcmp(ext, ".def")) {
|
||||
size_t len = ext - filename;
|
||||
tcc_strcpy_part(libname, filename, len);
|
||||
pstrncpy(libname, filename, len);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
if (libprefix && (!strcmp(ext, ".so"))) {
|
||||
size_t len = ext - filename - 3;
|
||||
tcc_strcpy_part(libname, filename + 3, len);
|
||||
pstrncpy(libname, filename + 3, len);
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
if (libprefix && (!strcmp(ext, ".a"))) {
|
||||
size_t len = ext - filename - 3;
|
||||
tcc_strcpy_part(libname, filename + 3, len);
|
||||
pstrncpy(libname, filename + 3, len);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user