Add rpath to the library paths instead of state->rpath

This commit is contained in:
Riccardo Schirone 2021-12-15 17:45:16 +01:00
parent d88857b210
commit 027b8fb9b8
2 changed files with 5 additions and 10 deletions

View file

@ -1134,7 +1134,7 @@ LIBTCCAPI int tcc_add_library_path(TCCState *s, const char *pathname)
}
static int tcc_add_library_internal(TCCState *s, const char *fmt,
const char *filename, int flags, char **paths, int nb_paths, const char *rpath)
const char *filename, int flags, char **paths, int nb_paths)
{
char buf[1024];
int i;
@ -1144,11 +1144,6 @@ static int tcc_add_library_internal(TCCState *s, const char *fmt,
if (tcc_add_file_internal(s, buf, flags | AFF_TYPE_BIN) == 0)
return 0;
}
if (rpath) {
snprintf(buf, sizeof(buf), fmt, rpath, filename);
if (tcc_add_file_internal(s, buf, flags | AFF_TYPE_BIN) == 0)
return 0;
}
return -1;
}
@ -1157,7 +1152,7 @@ static int tcc_add_library_internal(TCCState *s, const char *fmt,
ST_FUNC int tcc_add_dll(TCCState *s, const char *filename, int flags)
{
return tcc_add_library_internal(s, "%s/%s", filename, flags,
s->library_paths, s->nb_library_paths, s->rpath);
s->library_paths, s->nb_library_paths);
}
#endif
@ -1165,7 +1160,7 @@ ST_FUNC int tcc_add_dll(TCCState *s, const char *filename, int flags)
ST_FUNC int tcc_add_crt(TCCState *s1, const char *filename)
{
if (-1 == tcc_add_library_internal(s1, "%s/%s",
filename, 0, s1->crt_paths, s1->nb_crt_paths, NULL))
filename, 0, s1->crt_paths, s1->nb_crt_paths))
tcc_error_noabort("file '%s' not found", filename);
return 0;
}
@ -1190,7 +1185,7 @@ LIBTCCAPI int tcc_add_library(TCCState *s, const char *libraryname)
int flags = s->filetype & AFF_WHOLE_ARCHIVE;
while (*pp) {
if (0 == tcc_add_library_internal(s, *pp,
libraryname, flags, s->library_paths, s->nb_library_paths, NULL))
libraryname, flags, s->library_paths, s->nb_library_paths))
return 0;
++pp;
}

View file

@ -3488,7 +3488,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level)
if (dt->d_tag == DT_SONAME) {
soname = dynstr + dt->d_un.d_val;
} else if (dt->d_tag == DT_RPATH) {
s1->rpath = tcc_strdup(dynstr + dt->d_un.d_val);
tcc_add_library_path(s1, dynstr + dt->d_un.d_val);
}
}