diff options
Diffstat (limited to 'src/logic/slbt_exec_ar.c')
-rw-r--r-- | src/logic/slbt_exec_ar.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/logic/slbt_exec_ar.c b/src/logic/slbt_exec_ar.c index 8f6016f..35c8380 100644 --- a/src/logic/slbt_exec_ar.c +++ b/src/logic/slbt_exec_ar.c @@ -103,6 +103,10 @@ static int slbt_exec_ar_perform_archive_actions( if (dctx->cctx->fmtflags & SLBT_OUTPUT_ARCHIVE_SYMBOLS) if (slbt_ar_output_symbols((*arctxp)->meta) < 0) return SLBT_NESTED_ERROR(dctx); + + if (dctx->cctx->fmtflags & SLBT_OUTPUT_ARCHIVE_MAPFILE) + if (slbt_ar_output_mapfile((*arctxp)->meta) < 0) + return SLBT_NESTED_ERROR(dctx); } if (dctx->cctx->drvflags & SLBT_DRIVER_MODE_AR_MERGE) { @@ -235,6 +239,10 @@ int slbt_exec_ar( break; + case TAG_AR_MAPFILE: + ictx->cctx.fmtflags |= SLBT_OUTPUT_ARCHIVE_MAPFILE; + break; + case TAG_AR_REGEX: ictx->cctx.regex = entry->arg; break; @@ -285,6 +293,9 @@ int slbt_exec_ar( if (cctx->fmtflags & SLBT_DRIVER_MODE_AR_OUTPUTS) { (void)0; + } else if (cctx->fmtflags & SLBT_OUTPUT_ARCHIVE_MAPFILE) { + (void)0; + } else if (!(cctx->drvflags & SLBT_DRIVER_MODE_AR_ACTIONS)) { if (cctx->drvflags & SLBT_DRIVER_VERBOSITY_ERRORS) slbt_dprintf(fderr, |