diff options
author | midipix <writeonce@midipix.org> | 2017-02-03 19:01:32 -0500 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2017-02-03 19:01:32 -0500 |
commit | 99263f7eaf3435eb542ddf5046ed2c2adc596e62 (patch) | |
tree | 5d04391ed07921bcbc6b00cf1009568c29610179 /src/logic | |
parent | 260511cf41481ecf20a73410b7e0d1ca5efcfa8a (diff) | |
download | mdso-99263f7eaf3435eb542ddf5046ed2c2adc596e62.tar.bz2 mdso-99263f7eaf3435eb542ddf5046ed2c2adc596e62.tar.xz |
struct mdso_meta_table: added .name struct member and related support.
Diffstat (limited to 'src/logic')
-rw-r--r-- | src/logic/mdso_generate_dsometa.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/logic/mdso_generate_dsometa.c b/src/logic/mdso_generate_dsometa.c index 676f040..483a05c 100644 --- a/src/logic/mdso_generate_dsometa.c +++ b/src/logic/mdso_generate_dsometa.c @@ -32,6 +32,13 @@ static const char * const asm_meta_lines[] = { 0 }; +static const char * const asm_libname_fmt = + "\n\n" + "\t.section " MDSO_STRS_SECTION ",\"r\"\n" + "\t.balign 2\n\n" + "._name:\n" + "\t.ascii\t\"%s\\0\"\n\n"; + int mdso_generate_dsometa( const struct mdso_driver_ctx * dctx, FILE * fout) @@ -61,6 +68,9 @@ int mdso_generate_dsometa( if ((fprintf(fout,"\t%s\t%d\t# base\n",ptrsize,0)) < 0) return MDSO_FILE_ERROR(dctx); + if ((fprintf(fout,"\t%s\t%s\t# name\n",ptrsize,"._name")) < 0) + return MDSO_FILE_ERROR(dctx); + if ((fprintf(fout,"\t%s\t%u\t# flags\n",".long",dctx->cctx->dsoflags)) < 0) return MDSO_FILE_ERROR(dctx); @@ -68,5 +78,8 @@ int mdso_generate_dsometa( if ((fprintf(fout,*line,ptrsize)) < 0) return MDSO_FILE_ERROR(dctx); + if (fprintf(fout,asm_libname_fmt,dctx->cctx->libname) < 0) + return MDSO_FILE_ERROR(dctx); + return 0; } |