diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildvm_peobj.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/buildvm_peobj.c b/src/buildvm_peobj.c index a24ae727..4b5d98c6 100644 --- a/src/buildvm_peobj.c +++ b/src/buildvm_peobj.c | |||
@@ -129,7 +129,7 @@ static void emit_peobj_sym(BuildCtx *ctx, const char *name, uint32_t value, | |||
129 | memset(sym.n.name+len, 0, 8-len); | 129 | memset(sym.n.name+len, 0, 8-len); |
130 | } else { | 130 | } else { |
131 | sym.n.nameref[0] = 0; | 131 | sym.n.nameref[0] = 0; |
132 | sym.n.nameref[1] = strtabofs; | 132 | sym.n.nameref[1] = (uint32_t)strtabofs; |
133 | memcpy(strtab + strtabofs, name, len); | 133 | memcpy(strtab + strtabofs, name, len); |
134 | strtab[strtabofs+len] = 0; | 134 | strtab[strtabofs+len] = 0; |
135 | strtabofs += len+1; | 135 | strtabofs += len+1; |
@@ -225,6 +225,9 @@ void emit_peobj(BuildCtx *ctx) | |||
225 | for (nzsym = 0; ctx->sym_ofs[ctx->perm[nzsym]] < 0; nzsym++) ; | 225 | for (nzsym = 0; ctx->sym_ofs[ctx->perm[nzsym]] < 0; nzsym++) ; |
226 | for (relocsyms = 0; ctx->extnames[relocsyms]; relocsyms++) ; | 226 | for (relocsyms = 0; ctx->extnames[relocsyms]; relocsyms++) ; |
227 | pehdr.nsyms = 1+PEOBJ_NSECTIONS*2 + 1+(ctx->nsym-nzsym)+1 + relocsyms; | 227 | pehdr.nsyms = 1+PEOBJ_NSECTIONS*2 + 1+(ctx->nsym-nzsym)+1 + relocsyms; |
228 | #if !LJ_HASJIT | ||
229 | pehdr.nsyms -= 7; | ||
230 | #endif | ||
228 | 231 | ||
229 | /* Write PE object header and all sections. */ | 232 | /* Write PE object header and all sections. */ |
230 | owrite(ctx, &pehdr, sizeof(PEheader)); | 233 | owrite(ctx, &pehdr, sizeof(PEheader)); |
@@ -306,7 +309,7 @@ void emit_peobj(BuildCtx *ctx) | |||
306 | break; | 309 | break; |
307 | /* 2nd pass: alloc strtab, write syms and copy strings. */ | 310 | /* 2nd pass: alloc strtab, write syms and copy strings. */ |
308 | strtab = (char *)malloc(strtabofs); | 311 | strtab = (char *)malloc(strtabofs); |
309 | *(uint32_t *)strtab = strtabofs; | 312 | *(uint32_t *)strtab = (uint32_t)strtabofs; |
310 | } | 313 | } |
311 | 314 | ||
312 | /* Write string table. */ | 315 | /* Write string table. */ |