summaryrefslogtreecommitdiffhomepage
path: root/src/logic/mdso_asmgen_symentry.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/logic/mdso_asmgen_symentry.c')
-rw-r--r--src/logic/mdso_asmgen_symentry.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/logic/mdso_asmgen_symentry.c b/src/logic/mdso_asmgen_symentry.c
index cba360d..ef38182 100644
--- a/src/logic/mdso_asmgen_symentry.c
+++ b/src/logic/mdso_asmgen_symentry.c
@@ -28,7 +28,7 @@ int mdso_asmgen_symentry(
{
const char * const * line;
const char * alignstr;
- const char * ptrsize;
+ const char * rvapad;
const char * uscore;
if (mdso_dprintf(fdout,"\t.file \".%s_symentry.s\"\n",sym) < 0)
@@ -36,11 +36,11 @@ int mdso_asmgen_symentry(
if (dctx->cctx->drvflags & MDSO_DRIVER_QUAD_PTR) {
alignstr = "\t.balign 16\n\n";
- ptrsize = ".quad";
+ rvapad = "\t.long 0\n";
uscore = "";
} else {
alignstr = "\t.balign 8\n\n";
- ptrsize = ".long";
+ rvapad = "";
uscore = "_";
}
@@ -57,10 +57,12 @@ int mdso_asmgen_symentry(
if ((mdso_dprintf(fdout,"__imp_%s%s:\n",uscore,sym)) < 0)
return MDSO_FILE_ERROR(dctx);
- if ((mdso_dprintf(fdout,"\t%s\t.symstr_%s\n",ptrsize,sym)) < 0)
+ if ((mdso_dprintf(fdout,"\t.rva\t.symstr_%s\n%s",
+ sym,rvapad)) < 0)
return MDSO_FILE_ERROR(dctx);
- if ((mdso_dprintf(fdout,"\t%s\t.dsometa_%s\n",ptrsize,dctx->cctx->libname)) < 0)
+ if ((mdso_dprintf(fdout,"\t.rva\t.dsometa_%s\n%s",
+ dctx->cctx->libname,rvapad)) < 0)
return MDSO_FILE_ERROR(dctx);
if ((mdso_dprintf(fdout,"\t.linkonce discard\n")) < 0)