aboutsummaryrefslogtreecommitdiff
path: root/tccelf.c
diff options
context:
space:
mode:
Diffstat (limited to 'tccelf.c')
-rw-r--r--tccelf.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/tccelf.c b/tccelf.c
index 502f30d..fad23b8 100644
--- a/tccelf.c
+++ b/tccelf.c
@@ -1127,8 +1127,6 @@ ST_FUNC void tcc_add_bcheck(TCCState *s1)
init_section->data_offset - 4, R_386_PC32, sym_index);
/* R_386_PC32 = R_X86_64_PC32 = 2 */
}
-#else
- (void) s1; /* not used */
#endif
}
@@ -1739,7 +1737,7 @@ static void fill_dynamic(TCCState *s1, struct dyn_inf *dyninf)
put_dt(dynamic, DT_SYMTAB, s1->dynsym->sh_addr);
put_dt(dynamic, DT_STRSZ, dyninf->dynstr->data_offset);
put_dt(dynamic, DT_SYMENT, sizeof(ElfW(Sym)));
-#if defined(TCC_TARGET_ARM64) || defined(TCC_TARGET_X86_64)
+#if PTR_SIZE == 8
put_dt(dynamic, DT_RELA, dyninf->rel_addr);
put_dt(dynamic, DT_RELASZ, dyninf->rel_size);
put_dt(dynamic, DT_RELAENT, sizeof(ElfW_Rel));
@@ -2760,7 +2758,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level)
#define LD_TOK_EOF (-1)
/* return next ld script token */
-static int ld_next(char *name, int name_size)
+static int ld_next(TCCState *s1, char *name, int name_size)
{
int c;
char *q;
@@ -2905,10 +2903,10 @@ static int ld_add_file_list(TCCState *s1, const char *cmd, int as_needed)
group = !strcmp(cmd, "GROUP");
if (!as_needed)
new_undef_syms();
- t = ld_next(filename, sizeof(filename));
+ t = ld_next(s1, filename, sizeof(filename));
if (t != '(')
expect("(");
- t = ld_next(filename, sizeof(filename));
+ t = ld_next(s1, filename, sizeof(filename));
for(;;) {
libname[0] = '\0';
if (t == LD_TOK_EOF) {
@@ -2918,7 +2916,7 @@ static int ld_add_file_list(TCCState *s1, const char *cmd, int as_needed)
} else if (t == ')') {
break;
} else if (t == '-') {
- t = ld_next(filename, sizeof(filename));
+ t = ld_next(s1, filename, sizeof(filename));
if ((t != LD_TOK_NAME) || (filename[0] != 'l')) {
tcc_error_noabort("library name expected");
ret = -1;
@@ -2953,9 +2951,9 @@ static int ld_add_file_list(TCCState *s1, const char *cmd, int as_needed)
}
}
}
- t = ld_next(filename, sizeof(filename));
+ t = ld_next(s1, filename, sizeof(filename));
if (t == ',') {
- t = ld_next(filename, sizeof(filename));
+ t = ld_next(s1, filename, sizeof(filename));
}
}
if (group && !as_needed) {
@@ -2981,7 +2979,7 @@ ST_FUNC int tcc_load_ldscript(TCCState *s1)
ch = handle_eob();
for(;;) {
- t = ld_next(cmd, sizeof(cmd));
+ t = ld_next(s1, cmd, sizeof(cmd));
if (t == LD_TOK_EOF)
return 0;
else if (t != LD_TOK_NAME)
@@ -2994,11 +2992,11 @@ ST_FUNC int tcc_load_ldscript(TCCState *s1)
} else if (!strcmp(cmd, "OUTPUT_FORMAT") ||
!strcmp(cmd, "TARGET")) {
/* ignore some commands */
- t = ld_next(cmd, sizeof(cmd));
+ t = ld_next(s1, cmd, sizeof(cmd));
if (t != '(')
expect("(");
for(;;) {
- t = ld_next(filename, sizeof(filename));
+ t = ld_next(s1, filename, sizeof(filename));
if (t == LD_TOK_EOF) {
tcc_error_noabort("unexpected end of file");
return -1;